轉(zhuǎn)載自:
超詳細(xì)届氢!Github團(tuán)隊(duì)協(xié)作教程(Gitkraken版
使用Gitkraken進(jìn)行其他Git操作
下載地址:
[https://www.gitkraken.com/)
一硝枉、正式使用流程(Gitkraken)
1. clone 項(xiàng)目到本地
點(diǎn)擊菜單欄 “File” -> “Clone Repo”掘猿, 選擇本地路徑说搅、輸入自己的遠(yuǎn)程倉庫 URL (如:https://github.com/thousfeet/Test
)鹊碍,clone 完成后點(diǎn)擊 “Open Now” 穆役。此時(shí)左側(cè)的 “REMOTE” 下方的 “origin” 會(huì)顯示你的遠(yuǎn)程倉庫信息获三。
操作動(dòng)圖:
2. 添加 REMOTE 關(guān)聯(lián)到團(tuán)隊(duì)遠(yuǎn)程倉庫
點(diǎn)擊 “REMOTE” 右側(cè) “+” 號(hào)旁蔼,添加團(tuán)隊(duì)項(xiàng)目倉庫。此時(shí) “REMOTE” 下會(huì)多出團(tuán)隊(duì)遠(yuǎn)程倉庫信息疙教。
操作動(dòng)圖:
3. 切換到 dev 分支
到這步棺聊,在本地倉庫(左上方 LOCAL )仍只能看到 master 分支。因此在 “origin” 下的 “dev” 處點(diǎn)擊右鍵 -> “check out origin/dev”贞谓,將遠(yuǎn)程的 dev 分支同步下來限佩。
操作動(dòng)圖:
完成這一步之后終于可以愉快地打開本地倉庫項(xiàng)目開始寫代碼辣。
4. 提交commit到自己的遠(yuǎn)程倉庫
首先明確:
我們把文件往Git版本庫里添加的時(shí)候裸弦,是分兩步執(zhí)行的:
第一步是用git add把文件添加進(jìn)去祟同,實(shí)際上就是把文件修改添加到暫存區(qū)(stage);
第二步是用git commit提交更改理疙,實(shí)際上就是把暫存區(qū)的所有內(nèi)容提交到當(dāng)前分支晕城。image(摘自廖雪峰 Git 教程)
當(dāng)你修改本地倉庫的文件時(shí),Gitkraken 會(huì)自動(dòng)檢測(cè)到變更窖贤,并在右上角顯示 “xx file changes on dev” 砖顷。點(diǎn)擊 “Stage all changes”,將文件修改添加到暫存區(qū)赃梧,然后在最右下方的 “Commit message” 中寫下 commit 信息滤蝠,提交到自己的遠(yuǎn)程倉庫。
操作動(dòng)圖:
5. 和團(tuán)隊(duì)遠(yuǎn)程保存同步
當(dāng)你在本地修改了項(xiàng)目的同時(shí)授嘀,其他隊(duì)友或許已在此期間給團(tuán)隊(duì)的倉庫提交了新的代碼物咳。因此在完成了一系列 commit 將要 push 到遠(yuǎn)程之前,先要同步到與團(tuán)隊(duì)一致的版本粤攒,避免在 pull request 時(shí)產(chǎn)生沖突所森。
為此我們要做兩件事:更新遠(yuǎn)程倉庫的代碼到本地倉庫(fetch)囱持,然后將內(nèi)容合并到當(dāng)前分支(merge)夯接。(在合并的時(shí)候可能會(huì)出現(xiàn)沖突,沖突的解決方式將會(huì)在后續(xù)說明纷妆。)
在Gitkraken的操作是:在 “REMOTE” 中的團(tuán)隊(duì)遠(yuǎn)程倉庫上單擊右鍵 -> Fetch xxx盔几,然后在團(tuán)隊(duì)遠(yuǎn)程倉庫的 dev 分支上單擊右鍵 -> Merge xxx/dev to dev 。
此時(shí)可以看到中間的樹狀分支圖上出現(xiàn)了 merge 信息掩幢。
操作動(dòng)圖:
6. push 到自己的遠(yuǎn)程倉庫 & 請(qǐng)求 pull request 到團(tuán)隊(duì)遠(yuǎn)程
點(diǎn)擊最上方的 push 按鈕將之前的一系列 commit 信息推到自己的遠(yuǎn)程倉庫逊拍,然后在團(tuán)隊(duì)遠(yuǎn)程倉庫的 dev 上右鍵 -> “Start a pull request to xxx/dev from origin/dev”上鞠,輸入 pull request 信息(如果只有一條 commit,則會(huì)自動(dòng)填充上 commit 信息)芯丧,然后點(diǎn)擊提交芍阎。此時(shí)可在右上角的彈窗單擊 “View on github”,在瀏覽器中查看此次 pull request 缨恒。
操作動(dòng)圖:
二. 使用Gitkraken進(jìn)行其他Git操作
查看某次 commit 的文件改動(dòng)
使用 Gitkraken 能非常方便的看到任意一次的 commit 對(duì)項(xiàng)目文件的改動(dòng)谴咸。
具體操作是:在樹狀分支圖上單擊某個(gè) commit 記錄,在右側(cè)會(huì)顯示出此次 commit 信息骗露、文件的改動(dòng)情況(分為紅岭佳、綠、黃三種標(biāo)志萧锉,分別代表刪除文件珊随、添加文件、修改文件)柿隙。
當(dāng)單擊某個(gè)改動(dòng)的文件時(shí)叶洞,會(huì)展示出具體的變更情況,可選擇 “Diff View” 視圖查看與上一次 commit 的差別优俘,或 “File View” 視圖查看完整文件京办。
修改 commit 信息
當(dāng)一不小心手抖誤寫和提交了一個(gè) commit 信息之后,可以在樹狀分支圖中選中此 commit 記錄(必須是最新一 次commit 帆焕,舊的 commit 信息不允許修改)惭婿,點(diǎn)擊右側(cè)上方的 commit 信息進(jìn)行修改,然后點(diǎn)擊下方 “Update Message” 提交修改叶雹。
操作動(dòng)圖:
合并多次 commit 信息
當(dāng)從團(tuán)隊(duì)項(xiàng)目分支 Merge 到本地時(shí)财饥, Git 會(huì)自動(dòng)產(chǎn)生一條形如 “Merge remote-tracking branch 'upstream/dev' into dev ” 的 commit 信息,提交到團(tuán)隊(duì)項(xiàng)目上去就會(huì)有一大堆這種 merge 信息混雜在有用的 commit 記錄里折晦。這時(shí)候就可以用合并 commit 信息得以解決钥星。
在Gitkraken中的具體操作是:在樹狀分支圖的某個(gè) commit 記錄上右鍵,選擇 “Reset dev to this commit” -> “Soft - keep all changes”满着。成功后谦炒,所有新于此條 commit 的信息都會(huì)被抹去,但文件的修改還保留著风喇。
操作動(dòng)圖:
回到舊版本 commit 記錄并 push 到遠(yuǎn)程倉庫
當(dāng)一不小心把某個(gè)代碼改崩了且已經(jīng)傳到了遠(yuǎn)程倉庫宁改,想要回退到舊版本的某次 commit 記錄并將此次舊記錄 push 到遠(yuǎn)程時(shí),可以做如下操作得以解決:
在樹狀分支圖的某個(gè) commit 記錄上右鍵魂莫,選擇 “Reset dev to this commit” -> “Hard - discard all changes”还蹲。成功后,所有新于此條 commit 的操作都會(huì)被抹去,包括對(duì)文件的修改谜喊。然后點(diǎn)擊上方菜單欄的 push 推到遠(yuǎn)程倉庫潭兽,但由于 head 指針滯后,選擇 Force 強(qiáng)制把遠(yuǎn)程項(xiàng)目更為舊版本斗遏。
操作動(dòng)圖:
* 解決 merge 到本地時(shí)的沖突
當(dāng)你在本地修改了代碼文件時(shí)山卦,隊(duì)友可能修改了同一份代碼,這時(shí)候從團(tuán)隊(duì)項(xiàng)目分支 merge 到本地時(shí)诵次,就可能會(huì)產(chǎn)生沖突怒坯。此時(shí)當(dāng)在團(tuán)隊(duì)遠(yuǎn)程分支右鍵點(diǎn)擊 merge 時(shí),Gitkraken會(huì)檢測(cè)出 conflict 藻懒,這時(shí)候只要選擇 “View conflict file” 就可以打開沖突文件的 diff 視圖剔猿,通過勾選方框選擇保留沖突部分的哪個(gè)版本,確定后就可以得到最下方的 Output 示意的最終合并后的文件嬉荆。
(但隊(duì)友反映不如直接在文件中去刪沖突標(biāo)識(shí)符更好用归敬,所以打星不做推薦)
三.如圖
最新版新加了命令行界面,更好理解了