주도권을 가지고 다른 브랜치를 merge할 것이다!
$ git checkout master
$ git merge server
(master) $ git merge server
에서 conflict 발생 시!$ git merge --abort
$ git add <conflicted file>
계속 merge 수행
$ git commit -m"COMMIT MESSAGE"
bonus
$ git branch -d [BRANCH]
$ git branch -D [BRANCH]
$ git branch -d server
$ git branch -d client
git log [OPTION]
--since= 해당 일 이상
--until= 해당 일 미만
(공식 문서에는 '이하'로 되어있지만 실제로 써보면 '미만'임)$ git log --since=2012-08-18 --until=2012-08-19
2458a4 Sat Aug 18 11:47:08 2012 -0400 Reenable copy/rename detection in the status view
$ git log --all --pretty="%h %cd %s" -10
$ git log --all -p -S "Copyright" --follow io.h
그런데 그냥..
$ git log --all -p --follow io.h
해서 안에서 /Copyright
하는 것도 괜찮음
더 다양한 정보가 나옴. -S
옵션으로는 못보던거임
$ git log --all -p --follow io.h
-> /Copyright
로 구한 0609a8
커밋$ git log --all -p --follow io.h
-> /Copyright
로 수동으로 찾았음
-S Copyright
, --grep "Copyright"
로는 안잡힘
git commit: graph.c 의 indentation이 마음에 들지 않아 코드 정리를 하려고 한다.
git_devel 에는 이미 코드가 수정되어 있다.
다음 수정을 하나의 commit으로, 나머지 부분을 다른 하나의 commit으로하여 git_devel에 반영하시오.
??
$ git checkout d5812d1
$ git checkout HEAD^
$ git commit --amend
저장후 나감
새로운 커밋이 만들어짐
3-1. 방법 1. rebase
(fc3383a) $ git checkout master
(master) $ git rebase fc3383a
그런데 이렇게하면, 같은 remote의 repository를 쓰는 사람들한테 피해를 입힘
3-2. 방법 2. merge
$ git checkout master
$ git merge master
엄청 conflict난다.
수정하고 나서
$ git merge --continue
$ git branch master HEAD
$ git commit --amend
"Reconsile tig-1.2"
(tig-0.5) $ git add .gitignore # .gitignore 추가
(tig-0.5) $ git commit --amend # 커밋 수정
(cd3bef5) $ git checkout master
(master) $ git rebase cd3bef5
충돌발생
$ git add .gitignore
$ git rebase --conitniue
$ git log --all --oneline --pretty="Author name: %an Committer name: %cn"
1-1. Author
$ git log
하면 나오는게 Author Name, Author Date$ git commit --amend --author="작성자명 <email 주소>"
$ git commit --amend --author="MarkYang <mark.yang@lge.com>"
$ git commit --amend
후 직접 수정1-2. Committer
Committer: Author 가 write하고 commit한 것을 기반으로 가장 최근에 Modify하고 커밋한 사람
How to check who is committer?
$ git config --list
$ git log --pretty="%cn"
1. squash를 시작할 커밋으로 checkout
$ git checkout 4c6fabc2
(4c6fabc2) $ git rebase -i 800a900c
 ̄ ̄ ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄ ̄ 포함할 커밋의 부모!!!!!!
포함 시작할 커밋에서!!!
$ git checkout bdc97fef
(bdc97fef) $ git tag tig-0.1_new
$ git checkout 6706b2b
(6706b2b) $ git rebase -i 4c6fabc2
커밋메시지 수정
$ git checkout cf734590
$ git tag tig-0.2_new
(HEAD) $ git rebase <TARGET BRANCH>
로 사용$ git checkout bdc97fef
(bdc97fef) $ git rebase <tig-0.2의 직전 브랜치>
그냥 메이저마다 $ git tag [TAG NAME]