讀書筆記-版本控制使用Git: 合併


這章中譯讓人看的特別阿雜,很多翻譯得不清不楚,只能先記錄一些未來可能用到的指令。


圖示分支合併的結構(terminal)

$git log --graph --pretty=oneline --abbrev-commit


合併衝突

檢查合併檔案衝突

$git diff                             // 比較index與工作目錄

$git diff HEAD                        // 比較HEAD與工作目錄(被合併)版本
$git diff --ours                      // 相當於 git diff HEAD
$git diff MERGE_HEAD                  // 比較MERGE_HEAD與工作目錄(被合併)版本
$git diff --theirs                    // 相當於 git diff MERGE_HEAD

$git diff --base                      // 檢視從合併開始的改變

$git log --merge --left-right -p      // 顯示所有合併衝突檔案的送交詳細紀錄
$git log --merge --left-right -p 檔名

--merge 只顯示跟合併衝突有關的commit、-p 顯示commit訊息和修正後檔案跟每個commit之間的關係

取消合併

可使用 git reset --hard,但要注意該指令會造成index中的檔案不見,重置回HEAD的狀態。

$git reset --hard HEAD       // 合併完成前放棄合併
$git reset --hard ORIG_HEAD  // 合併完成後放棄合併

若要回復原始的狀態重新解決合併衝突,在Git 1.6.1版本以後,可使用的 git checkout -m

合併策略

可以用在 git mergegit pull 的子指令,用法如 git merge -s --resolve branch

  1. fast-forward
  2. resolve
  3. recursive
  4. octopus
  5. ours
  6. subtree
#Git #book #note






你可能感興趣的文章

深入學習 LSD-SLAM 番外篇 - RDS X RTAB-Map

深入學習 LSD-SLAM 番外篇 - RDS X RTAB-Map

用 CSS Grid 創造蒙德里安藝術

用 CSS Grid 創造蒙德里安藝術

CSS-[pseudo-classes]-a元素的偽類族

CSS-[pseudo-classes]-a元素的偽類族






留言討論