網頁

2020年3月3日 星期二

git 學習筆記 4, branch checkout merge

checkout 移動 HEAD
git checkout hash
移動 HEAD 到 hash commit
git checkout file
將檔案還原到 HEAD 狀態,放棄修改

預設的 branch 為 master

git branch
顯示所有 branch

git branch new_branch
新建一個 branch, 但 HEAD 沒有轉移,需要自己執行下列命令
git branch new_branch hash
在 hash commit 上建立 new_branch
git checkout new_branch
可用下列命令取代上兩個命令
git checkout -b new_branch

HEAD 必須和 branch 掛勾,
如 checkout 到舊的 commit, 若要以此為基準修改,則馬上執行
git checkout -b new_branch

git branch -d del_branch
刪除 branch
但刪除前需要 checkout 到別的 branch,不能刪除目前的 branch
刪除前會判斷目前的 branch 和要刪的 branch 是否需要 merge
若需要 merge, 則會失敗, 若不 merge 要直接刪,則用
git branch -D del_branch

git checkout branch_a
git merge branch_b
Fast-forward
git merge branch_b --no-ff
no Fast-forward
若有衝突(conflict), 可查看 git status
衝突解決用 git commit
放棄 merge, 使用 git merge --abort

vi conflict_file
<<<<<<< HEAD
在 HEAD 修改的內容
=======
在 branch_b 修改的內容
>>>>>>> branch_b

git mergetool
會顯示 branch_a, base_of_a_b, branch_b
還有要 merge 的檔

git add conflict_file
git commit


沒有留言:

張貼留言