Git 進階操作(一)
阿新 • • 發佈:2018-08-12
topic 參考 origin hot parent ref selection 本地 vision
1. 獲取提交信息(commit)
git show 1c002d(哈希值的前幾位)
: 獲取提交的信息;git show HEAD^
: 顯示HEAD的上級(parent)提交的信息;git show HEAD~
: 同上;git show HEAD~3
: the first parent of the first parent of the first parent;
// experiment 分支上,還沒有合並到master分支上的內容 $ git log master..experiment D C // 變體: // git log origin/master..HEAD: 本地分支還未合並到遠程分支的內容;
// 顯示每個分支獨有的部分
git log master...experiment
// 升級版
git log --left-right master...experiment
2. 更改歷史記錄(Rewriting History)
git commit --amend
: 更改最後一次提交的歷史記錄;
3. 重置(Reset)
- 三顆"樹"
- 此處"樹"指文件的集合;
- "HEAD": Last commit snapshot, next parent;
- "Index": Proposed next commit snapshot;
- "Working Directory": Sandbox;
3.1 重置情況一
git reset 9e5e6a4
或git reset --soft HEAD~
3.2 重置情況二(默認)
git reset --mixed HEAD~
或git reset HEAD~
3.3 重置情況三
git reset --hard HEAD~
4. 合並分支進階
git checkout --conflict=diff3 hello.rb
git config --global merge.conflictstyle diff3
: 在配置文件中設置;
git log --oneline --left-right HEAD...MERGE_HEAD
: 查看合並時,每個分支包含的操作日誌;
git log --oneline --left-right --merge
: 查看含有沖突的日誌;
4.1 復原分支
git reset --hard HEAD~
: 將合並的分支復原(針對本地倉庫)
git revert -m 1 HEAD
: 保存主分支(C6)的內容,將合並的分支(C4)內容剔除
git revert ^M
: 將剔除的分支,重新合並到主分支;git merge topic
參考資料:
- Pro Git
Git 進階操作(一)