- GitHub 계정 만들기
- Sourcetree 를 설치
- 작업은 반드시 터미널에서 진행합니다. Sourcetree와 같은 GUI도구는 중간에 과정을 생략합니다.
- 그러나 뭔가를 할 때마다 Sourcetree를 계속 보시면 Git에 대해 알 수 있고, 무슨 일이 벌어지고 있는지도 알 수 있습니다.
- Windows
- PowerShell 을 공부하고 git 명령어 수행은 PowerShell 에서 진행
- Mac
- iterm 설치 후 iterm 터미널에서 진행
git init
git clone <원격 저장소 주소>
Sourcetree를 실행해 방금 만들거나 가져온 폴더를 추가합니다.
뭔가를 할 때마다 Sourcetree를 계속 보시면 Git에 대해 알 수 있고, 무슨 일이 벌어지고 있는지도 알 수 있습니다.
git remote
git remote -v
- upstream - 공용 repository(보통 팀 repo)
- origin - 공용 repository 를 내 계정에 fork한 repository
주의) clone으로 원격 저장소를 가져오면 origin 원격 저장소가 이미 추가된 상태입니다.
아래는 git init 후 수동으로 원격 저장소를 추가할 때 사용하는 방법입니다.
git remote add origin <내 원격 저장소 주소>
git fetch origin
git remote add upstream <공용 원격 저장소 주소>
git fetch upstream
fetch(가져오기)【원격 저장소】 | 누구나 쉽게 이해할 수 있는 Git 입문버전 관리를 완벽하게 이용해보자 | Backlog
git clone <fork된 내 GitHub repository 주소>
git remote add upstream <공용 원격 저장소 주소>
git remote -v
upstream과 origin이 아래와 같은지 확인합니다.
- upstream - 공용 repository(보통 팀 repo)
- origin - 공용 repository 를 내 계정에 fork한 repository
git status
(git status는 수시로 해주는 게 좋습니다. 내가 의도한 작업이 수행 됐는지 수시로 확인합니다.)
git checkout -b <브랜치 이름> upstream/master
upstream/master는 붙여서 쓰고, 가운데 슬래시(/)가 들어갑니다.
브랜치 이름은 작업한 내용을 표현해야 합니다. ex) login-oauth-apply
git fetch upstream master
git rebase upstream/master
원하는 작업을 이 시점에 합니다.
뭔가 바뀐 점을 추가합니다.
새 파일을 추가하는 게 아니라, 파일 추가/변경/삭제란 “바뀐 점”을 추가합니다.
git add .
방금 추가한 바뀐 점을 커밋합니다.
가능하면 메시지를 우리가 나중에 찾아볼 수 있는 형태로 씁니다.
git commit
반드시 숙지하고 지키려고 노력합시다.
Commit Message Style Guide For Git
git commit 에디터는 vi 에디터를 기본적으로 씁니다.
주의) git commit -m "message" 는 쓰지 마세요. -m은 anti pattern입니다.
git push origin <브랜치 이름>
origin과 <브랜치 이름> 사이엔 공백이 들어갑니다.
GitHub에서 New Pull Request를 합니다.
Pull Request를 했지만 수정하고 싶을 때가 있습니다. 코드 리뷰 내용을 보고 반영하기 위해 고칠 때가 많은데, 해당 브랜치에 가서 Commit을 추가하고 Push만 하면 됩니다.
git checkout <브랜치 이름>
변경 작업을 이 시점에 합니다.
뭔가 바뀐 점을 추가합니다.
새 파일을 추가하는 게 아니라, 파일 추가/변경/삭제란 “바뀐 점”을 추가합니다.
git add .
방금 추가한 바뀐 점을 커밋합니다.
가능하면 메시지를 우리가 나중에 찾아볼 수 있는 형태로 씁니다.
git commit
git push origin <브랜치 이름>
뭔가 새로운 작업을 하지 않아도 Pull Request가 바뀐 것을 확인할 수 있습니다.
git checkout master
git fetch upstream master
git rebase upstream/master
git push origin master
내 컴퓨터에 있는 브랜치 중 Merge된 것 보기
이 목록에 master도 포함된다는 점에 주의!
git branch --merge
내 컴퓨터와 원격 저장소에 있는 브랜치 중 Merge된 것 보기
이 목록에 master도 포함된다는 점에 주의!
git branch -a --merge
git branch -d <브랜치 이름>
git branch -D <브랜치 이름>
git push origin :<브랜치 이름>
https://github.com/CodeSoom/git-training
위 repo를 공용 repository로 하여
각자 이니셜로 만든 문서 파일(e.g. csh.md
)을 추가하여
Pull Request를 날려봅니다.