Github 사용법 [중급]
1. Github
먼저 Github.com에서 repository를 생성한다. 가입 및 생성
git clone https://github.com/khjoony/MovieList.git
echo "test file" >> test.txt
git add test.txt
git commit -m "test commit"
git remote add origin https://github.com/khjoony/MovieList.git
git push -u origin master
…or push an existing repository from the command line
git remote add origin https://github.com/khjoony/MovieList.git
git push -u origin master
fatal: refusing to merge unrelated histories 에러가 날경우 아래처럼 옵션을 넣어서 실행한다.
git pull origin master --allow-unrelated-histories // 원격 내용을 강제로 가져온다
0.설정하기
1.로컬저장소 생성하기
2.로컬저장소에 저장하기
3.로컬저장소와 원격저장소 연결하기
4.원격저장소에 저장하기
요약
2. Git Configuration(깃 기본설정)
>>git init
>>git status
>>.vi .gitconfig // vi 사용법
---------------------이하 .gitconfig의 문서 내용 편집가능-------------
[user]
email = boolean@booolean.com
name = Kimboolean
[core]
editor = vim
[merge]
tool = vimdiff
[color]
status = auto
branch = auto
interactive = auto
diff = auto
---------------------이상 .gitconfig의 문서 내용 편집가능-------------
>>git config --global user.name "Kimboolean" //이런식으로 명령라인에서 개별로 입력가능
>>git config --list //gitconfig 설정값들을 보여줌
>>git remote add remote_nickname your own repository URL(ex : https://github.com/.......)
>>git remote //Output nickname of remoteserver
>>git remote -v //Output nick & URL of remoteserver
특정 branch | folder | file 가져오는 방법 두가지
1.
>> git clone {URL} -b remote_branch_name[/folder_name | file_name]
2.
>>git branch -r /remote's list of branches
>>git checkout -b local's branch_name origin/remote's branch_name
fatal: unable to access 'https://github.com/khjoony/git-workshop.git/': Failed to connect to localhost port 3128: Connection refused
git- set : Configure git as well
git config --global http.proxy http://localhost:3128
git config --global https.proxy http://localhost:3128
git config --global url."http://".insteadOf git://
git- unset
git config --global --unset http.proxy
git config --global --unset https.proxy
git config --global --unset url."http://".insteadOf
3.문서 수정 및 생성
아래 순서를 꼭 지키기 바란다. 이유는 해보면 알겄이다.
빈 폴더에서 처음 파일을 생성해서 commit을 한 다음에어 branch를 생성할 수 있다.
원하는 이름의 branch를 생성하고 나면 다시 add commit 해야 push할 수 있다.
>>git status
>>echo helllo git test > gittest.txt // 문서가 없으면 간단한 파일생성
>>git add filename or [all | *]
>>git reset // git add 취소하려고 할 때
>>git status // Only for check status. Not necessarily.
>>git commit or git commit -m "reason of commit's message"
>>git branch // Lookup branch of local
>>git branch -a // Lookup all of branch
>>git branch -[a]v // Detail lookup [all] local of branch
>>git branch --merged // If Without *, it can delete.
>>git branch --no-merged // It can't delete.
>>git branch -[d | D] local's branch // [delete | force delete] local's branch
>>git push remote_nickname --delete remote's branch //remote branch 삭제
>>git branch new_branch_name // create branch
>>git checkout branch's name //Select which branch to use
>>git add filename or [all | *]
>>git reset // git add 취소하려고 할 때
>>git status // Only for check status. Not necessarily.
4.리모트에 잘못 올린 파일 삭제 및 수정(로컬에는 남아있음)
>>git rm -r foldername to be delete or filename to be delete
>>git git commit or git commit -m "reason of commit's message"
>>git push
5.문서 결합(merge) 연결(추적) 시키기
>> git branch -vv
iss53 7e424c3 [origin/iss53: ahead 2] forgot the brackets
master 1ae2a45 [origin/master] deploying index fix
* serverfix f8674d9 [teamone/server-fix-good: ahead 3, behind 1] this should do it
testing 5ea463a trying something new
iss53
브랜치는 origin/iss53
리모트 브랜치를 추적하고 있다는 것을 알 수 있고 “ahead” 표시를 통해 로컬 브랜치가 커밋 2개 앞서 있다(리모트 브랜치에는 없는 커밋이 로컬에는 존재)는 것을 알 수 있다.
master
브랜치는 origin/master
브랜치를 추적하고 있으며 두 브랜치가 가리키는 커밋 내용이 같은 상태이다.
serverfix
브랜치는 server-fix-good
이라는 teamone
리모트 서버의 브랜치를 추적하고 있으며 커밋 3개 앞서 있으며 동시에 커밋 1개로 뒤쳐져 있다. 이 말은 serverfix
브랜치에 서버로 보내지 않은 커밋이 3개, 서버의 브랜치에서 아직 로컬 브랜치로 머지하지 않은 커밋이 1개 있다는 말이다.
testing
브랜치는 추적하는 브랜치가 없는 상태이다.
6. git add commit 되돌리기
>>git checkout { . | dir | file } //repository 내 {모든 | 폴더 | 파일 } 수정 되돌리기
>>git reset // git add 취소 ^(1단계전,) ^^(2단계전), ^^^(3단계전),.........
>>git reset --hard HEAD^n //바로전commit을 취소하고 내용을 없애고 HEAD를 바로전으로 이동
>>git reset HEAD^n //n번째까지 commit을 취소하고 내용을 남기고 unstage상태로 만들기
>>git reset --soft HEAD^n //n번째까지 commit을 취소하고 내용을 닉기고 staged상태로 이동
>>git clean -fdx // 모든 untracked 파일들을 지우기
7. git push를 한 경우 remote repository도 이전으로 되돌리기
>>git reset HEAD^ //local repository에서 commit을 하나 되돌림
>>git commit -m "..." //되돌린 것으로 commit
>>git push origin +master //remote repository를 강제로 revert
8. git에서 특정 날짜(일시) 특정시점으로 되돌리기fetch할 수 있는 방법
>>git log gitlog.txt /git log 의 실행내용을 gitlog.txt라는 파일을 만들어 저장한다.
>>vi gitlog.txt //gitlog.txt파일을 vi편집기로 열어서 열람한다.
>>git checkout commitID //commitID는 해싱형태로 되어있으며 앞 6자리만 사용해도 된다.
9.특정위치의 브렌치(branch)를 로컬로 복사(clone)하자
>>git clone my_branch remote_repo
'my_lesson > _GIT' 카테고리의 다른 글
GIT - React + Yarn + Github (0) | 2017.10.23 |
---|---|
Git - GITHUB +ATOM 사용 설정하기 (0) | 2017.10.22 |
GIT - GITHUB Create SSH key (0) | 2016.05.12 |
GIT - Github Sign Up(가입) and Setting your account (0) | 2016.05.12 |
GIT - 오픈소스 버전관리 사용법 (0) | 2016.05.12 |
댓글