使用Gitkraken進行其他Git操作
## 查看某次 commit 的文件改動
使用 Gitkraken 能非常方便的看到任意一次的 commit 對項目文件的改動。
具體操作是:在樹狀分支圖上單擊某個 commit 記錄,在右側會顯示出此次 commit 信息、文件的改動情況(分為紅、綠、黃三種標志,分別代表刪除文件、添加文件、修改文件)。
當單擊某個改動的文件時,會展示出具體的變更情況,可選擇 “Diff View” 視圖查看與上一次 commit 的差別,或 “File View” 視圖查看完整文件。
修改 commit 信息
當一不小心手抖誤寫和提交了一個 commit 信息之后,可以在樹狀分支圖中選中此 commit 記錄(必須是最新一 次commit ,舊的 commit 信息不允許修改),點擊右側上方的 commit 信息進行修改,然后點擊下方 “Update Message” 提交修改。
操作動圖:
合並多次 commit 信息
當從團隊項目分支 Merge 到本地時, Git 會自動產生一條形如 “Merge remote-tracking branch 'upstream/dev' into dev ” 的 commit 信息,提交到團隊項目上去就會有一大堆這種 merge 信息混雜在有用的 commit 記錄里。這時候就可以用合並 commit 信息得以解決。
在Gitkraken中的具體操作是:在樹狀分支圖的某個 commit 記錄上右鍵,選擇 “Reset dev to this commit” -> “Soft - keep all changes”。成功后,所有新於此條 commit 的信息都會被抹去,但文件的修改還保留着。
操作動圖:
回到舊版本 commit 記錄並 push 到遠程倉庫
當一不小心把某個代碼改崩了且已經傳到了遠程倉庫,想要回退到舊版本的某次 commit 記錄並將此次舊記錄 push 到遠程時,可以做如下操作得以解決:
在樹狀分支圖的某個 commit 記錄上右鍵,選擇 “Reset dev to this commit” -> “Hard - discard all changes”。成功后,所有新於此條 commit 的操作都會被抹去,包括對文件的修改。然后點擊上方菜單欄的 push 推到遠程倉庫,但由於 head 指針滯后,選擇 Force 強制把遠程項目更為舊版本。
操作動圖:
* 解決 merge 到本地時的沖突
當你在本地修改了代碼文件時,隊友可能修改了同一份代碼,這時候從團隊項目分支 merge 到本地時,就可能會產生沖突。此時當在團隊遠程分支右鍵點擊 merge 時,Gitkraken會檢測出 conflict ,這時候只要選擇 “View conflict file” 就可以打開沖突文件的 diff 視圖,通過勾選方框選擇保留沖突部分的哪個版本,確定后就可以得到最下方的 Output 示意的最終合並后的文件。
(但隊友反映不如直接在文件中去刪沖突標識符更好用,所以打星不做推薦)