July 27, 2020
평소에는 자신의 Local repository에서 작업 후 작업 완료 시 Remote repository에 업로드한다. 또는 다른 사람들이 작성한 코드를 Remote repository를 통해 자신의 Local repository로 가져 올 수 있다.
git init
으로 만들기git init
명령어를 사용한다.git clone
으로 만들기 (Github)git clone <remote repo URL>
git add
git add <file name>
: 해당 파일을 Staing 한다.git add .
: 변경된 모든 파일을 Staging 한다.git commit
git commit -m <msg>
: Staging된 파일을 Commit 하고 메시지를 남긴다.git status
명령어 사용하여 상태를 확인해 보면 다음과 같은 메시지를 확인 할 수 있다.$ git status
# On branch master
nothing to commit (working directory clean)
모든 변경 사항이 commit 됨을 알 수 있다.
git log
명령어로 사용한다.commit 0656e4eca900ad6b19463f76a10815e724f45ddd (feature/v0.2)
Author: yongineer1990@gmail.com <60580491+Yongineer1990@users.noreply.github.com>
Date: Thu Jun 4 17:29:03 2020 +0900
CSV 파일 저장 완료
commit cfa31e1617f69d55c1d2e34a05f4773872838e87
Author: yongineer1990@gmail.com <60580491+Yongineer1990@users.noreply.github.com>
Date: Thu Jun 4 17:19:43 2020 +0900
음료 정보 가져오기 완료
💡 git status
& git log
git status
Unmodified
, modified
, staged
상태를 확인git log
Remote repository의 주소를 이름에 저장하기
git remote add <name> <remote repo URL>
git remote add origin https://github.com/Yongineer1990/Starbucks_Scrapper.git
Github의 Remote repository 경로를 origin
이라는 이름으로 저장
github에선 repository에서 Clone or download 버튼을 클릭하면 주소를 클립보드에 복사 할 수 있다.
Push 하기
git push <remote> <branch>
origin
으로 저장 하였으니 master 브랜치에 Push한다고 가정할 경우git push origin master
💡Branch명 생략하기
git push -u origin master
-u 옵션을 사용 하여 한번 branch명을 입력 해주면 이후 Push에서 Branch명을 생략하고 push 할 수 있다.다운로드
Pull 하기
git pull <remote> <branch>
origin
으로 저장 하였으니 master 브랜치에서 Pull한다고 가정할 경우git pull origin master
독립적으로 작업을 진행하기 위한 하나의 작업 공간이며 각각의 브랜치는 다른 브랜치에게 영향을 주지 않기 때문에 여러 작업을 동시에 진행 할 수 있다.
checkout
명령어를 사용하여 브랜치간 전환한다.git checkout <branch name>
commit
하지 않은 내용이 있는채로 checkout
하게 되면 그 변경 사항들은 기존 브랜치가 아닌 전환된 브랜치에서 commit
할 수 있다.checkout
은 실패 할 수 있으며 이 경우 변경 내용을 먼저 commit
하고 브랜치를 전환하거나 stash
를 사용하여 임시 저장 하여 충돌을 피한 후 checkout
할 수 있다.merge
명령어를 사용하여 여러 브랜치를 하나로 병합할 수 있다.git merge <branch name>
Conflict
가 발생하며 이를 해결 후 다시 commit
해야 올바르게 merge
할 수 있다.git branch -d <branch name>
💡 rebase
merge
와 다르게 통합하는것이 아닌 통합할 브랜치 뒤로 이동하는 것을 rebase
라고 한다.git rebase <branch name>
만약 master 에서 새로운 기능 추가를 위한 브랜치 A를 생성하여 작업 하는 것과 동시에 버그 수정을 위한 브랜치 B를 생성하여 버그 수정이 동시에 일어나고 있는 경우 버그 수정이 완료 되어 master 브랜치와 병합 하였지만 새로운 기능 구현을 위한 A브랜치에도 B브랜치의 수정사항이 필요한 상태라고 가정 해보자
이때
rebase
를 이용하면 B브랜치의 수정사항을 반영하여 작업을 이어나갈 수 있게 된다.