+
Git Study
1.3 git basic
24b9da6552252987aa493b52f8696cd6d3b00373
Git은 데이터를 추가할 뿐
Committed, Modified, Staged
1.4 CLI
왜 CLI?
1.6 First-Time Git Setup
git config
$ git config --global user.name
$ git config --global user.email
--global 옵션
$ git config --global core.editor emacs
$ git config --list
$ git config user.name
NOTE
1.7 Git Help
$ git help config
$ git add -h
2.1 Git 저장소 만들기
$ git init
$ git commit -m 'initial project version'
$ git clone https://github.com/libgit2/libgit2
$ git clone https://github.com/libgit2/libgit2 mylibgit
2.2 수정하고 저장소에 저장하기
git lifecycle
$ git status
$ git status : Untracked
$ git add README
$ git add CONTRIBUTING.md
$ git status -s
.gitignore
.gitignore 예제
.gitignore NOTE
$ git diff
$ git diff --staged
꼭 잊지 말아야 할 것
$ git diff --cached(== --satged)
$ git difftool
$ git commit
$ git commit -m "Story 182: Fix benchmarks for speed"
$ git commit -a -m 'added new benchmarks'
$ rm PROJECTS.md
$ git rm PROJECTS.md
$ git rm --cached README
$ git rm log/\*.log
$ git mv file_from file_to
2.3 커밋 히스토리 조회하기
$ git log
$ git log -p -2 / $ git log --patch -2
$ git log --stat
$ git log --pretty=oneline (short, full, fuller)
$ git log --pretty=format:"%h - %an, %ar : %s"
git log --pretty=format 에 쓸 몇가지 유용한 옵션
$ git log --since=2.weeks
$ git log -S function_name
git log 조회 범위를 제한하는 옵션
$ git log --pretty="%h - %s" --author=gitster --since="2008-10-01" \ --before="2008-11-01" --no-merges -- t/
2.4 되돌리기
$ git commit --amend
$ git reset HEAD CONTRIBUTING.md
$ git checkout -- CONTRIBUTING.md
2.5 리모트 저장소
리로트 저장소
$ git clone https://github.com/schacon/ticgit
$ git remote add pb https://github.com/paulboone/ticgit
$ git fetch <remote>, FETCH_HEAD (가상의 브랜치)
$ git push origin master
$ git remote show origin
$ git remote rename pb paul / $ git remote remove paul
2.6 태그
태그
$ git tag
$ git tag -l "v1.8.5*"
Annotated / Lightweight
$ git tag -a v1.2 9fceb02
$ git push origin v1.5
$ git checkout 2.0.0
2.7 Git Alias
Git Alias
$ git config --global alias.co checkout
3.1 브랜치란 무엇인가
브랜치란 무엇인가
브랜치란 무엇인가2
$ git branch testing, $ git log --oneline --decorate
$ git checkout testing
Note
$ git log --oneline --decorate --graph --all
3.2 브랜치와 Merge 의 기초
브랜치와 Merge 의 기초
브랜치의 기초
Merge의 기초
충돌의 기초
$ git mergetool, $ git status
3.3 브랜치 관리
$ git branch
$ git branch -v
$ git branch --merged
$ git branch --no-merged
TIP
3.4 브랜치 워크플로
브랜치 워크플로
Long-Running 브랜치
토픽 브랜치
3.5 remote branch
$ git ls-remote origin
$ git remote show origin
리모트 트래킹 브랜치
NOTE
$ git push origin serverfix
NOTE
$ git merge origin/serverfix
$ git fetch origin
$ git checkout -b serverfix origin/serverfix
$ git checkout --track origin/serverfix
NOTE
$ git checkout serverfix
$ git checkout -b sf origin/serverfix
$ git branch -u origin/serverfix
$ git branch -vv
$ git fetch --all; git branch -vv
$ git push origin --delete serverfix
$ git push origin --delete serverfix
3.5.xx remote branch 접근 방법
$ remote branch 접근 방법
3.6 rebase
Rebase 하기
Rebase 의 기초
Rebase 활용
Rebase의 위험성
이미 공개 저장소에 Push 한 커밋을 Rebase 하지 마라
Rebase 한 것을 다시 Rebase 하기
$ git checkout experiment; $ git rebase master
$ git rebase --onto master server client
$ git rebase master server
$ git rebase teamone/master
$ git pull --rebase
$ git config --global pull.rebase true
$ git pull --rebase
Rebase vs. Merge
3.6.XX git commit 기록 바꾸는 방법
바로 직전 커밋 바꾸기
이전 커밋 바꾸기
7.3 Git 도구 - Stashing과 Cleaning
7.6 히스토리 단장하기
히스토리 단장하기
마지막 커밋을 수정하기
커밋 메시지를 여러 개 수정하기
커밋 순서 바꾸기
커밋 합치기
커밋 분리하기
filter-branch는 포크레인
7.7 reset 명확히 알고 가기
Reset 명확히 알고 가기
$ git reset HEAD~
경로를 주고 Reset 하기
합치기(Squash)
checkout과 reset의 차이점
7.7.xx reset, revert 차이점