輕松使用SourceTree進(jìn)行代碼版本管理

以前剛剛接觸SourceTree的時(shí)候,覺得很簡單,遇到?jīng)_突了去包文件里面刪掉那些明顯的標(biāo)記,然后在誰也不知道誰刪掉了誰的文件的情況下,只要不報(bào)沖突就算是自己給自己的版本推上去了,這樣明顯不是SourceTree的初衷
(其實(shí)我以前就是這么干的...現(xiàn)在覺得自己還是too young too naive...)
幸好,在我的老大Thomas的指引下,和我的好同事Poul的共同探討+實(shí)踐下,應(yīng)該算是弄明白了SoucreTree的使用

大家都知道git是分布式的代碼管理工具,理論上面大家都明白,可是實(shí)踐高于理論,那么請嘗試著采用以下的方法來理解它的原理吧!

準(zhǔn)備工作

第一步:創(chuàng)建自己的本地分支

(服務(wù)器配置工作暫時(shí)不說了,這不是本文的重點(diǎn))

你需要打開SourceTree,注意右側(cè)BRANCHES,REMOTES,(如果你是第一次使用SourceTree的話,這個(gè)BRANCHES的類目下面基本上只有一個(gè)master,這個(gè)master是本地的master,REMOTES這個(gè)類目下也有一個(gè)master,這是服務(wù)器遠(yuǎn)端的master)

關(guān)鍵點(diǎn):我們在BRANCHES這個(gè)類目下新建一個(gè)branch
方法如下圖:

317264EB-EF22-4EDA-8E3F-2FB18085A37A.png

為了代碼管理的方便,我們盡量遵循

  • 只能讓本地的master向遠(yuǎn)端的master進(jìn)行提交工作
  • 忽略工程中二進(jìn)制文件的改動(建議將二進(jìn)制文件與代碼文件區(qū)分路徑存放,這樣在暫存的文件中我們比較容易識別出哪些文件可以不進(jìn)行commit,以避免不必要的沖突)
  • 還有不得不說的是,盡量在提交和合并的時(shí)候完全Quit出XCODE

工作流程

上班第一件事:merge

上班第一件事就是從服務(wù)器拉取其他同事的代碼到本地進(jìn)行merge
我們所要做的就是按照如下進(jìn)行:

  1. 右擊自己新建的DEV,選擇checkout到master上,(如果已經(jīng)是master就不需要切換了----如何分辨出當(dāng)前在哪個(gè)分支下?答:當(dāng)前的分支是粗黑體)中文版本為檢出到master
  2. 然后點(diǎn)擊fetch,從遠(yuǎn)端獲取最新動態(tài)
  3. 然后點(diǎn)擊merge,選中到最新的節(jié)點(diǎn),OK即可
  4. 最后再checkout到自己新建的DEV,右擊master選擇merge master into DEV

這樣就完成了合并代碼

下班最后一件事:commit

務(wù)必記住在開始代碼編寫工作前請先checkout到DEV,直到工作完成,我們來commit代碼

  1. commit自己寫的的文件,這樣自己的文件就被提交到了自己的DEV分支中
  2. checkout到master,然后右擊DEV,選擇merge DEV into master
  3. 將working space中不需要commit的文件或者需要解決沖突的文件discard掉
  4. push到遠(yuǎn)端即commit成功
  5. 注意提交成功后切換到DEV

最后附上一些參考資料,感興趣的可以看看

中英文版本的GIT Document

感謝你們!


2016.2.24補(bǔ)充:
當(dāng)我編寫代碼完成,發(fā)現(xiàn)遠(yuǎn)端有新動態(tài),此時(shí)的操作:

  1. 先將Working Copy中需要commit的文件commit到DEV上(在comment區(qū)域做上自己的版本注釋)
  2. 切換到master上,選擇merge DEV into master(此時(shí)SourceTree會告訴你,你當(dāng)前落后了多少超前了多少,如果沒有這樣的提示,就fetch一下遠(yuǎn)端)
  3. 進(jìn)行merge(將本地的master與遠(yuǎn)端的master進(jìn)行合并)
  4. 沒有問題,push到遠(yuǎn)端
  5. 切換到DEV,選擇merge master into DEV

2016.3.2補(bǔ)充一:
除了使用merge的方式和代碼,還有一種是rebase,探索中......
2016.3.2補(bǔ)充二:(IMPORTANT----可有效避免沖突的發(fā)生頻率)

E5A8EE98-853A-4888-AB1B-40B4C6834B8F.jpg

在SourceTree的設(shè)置中,如上圖修改文件為以下文件

Mac OSX

*.DS_Store

Xcode

*.pbxuser
*.mode1v3
*.mode2v3
*.perspectivev3
*.xcuserstate
project.xcworkspace/
xcuserdata/

#Git
.gitingore
.gitingore.swp


2016.3.8補(bǔ)充:
盡量不要使用pull,我的理解是pull是一種強(qiáng)制將遠(yuǎn)端拉取下來,所以盡量使用fetch吧,這樣才能更好的合代碼
另外,在遇到?jīng)_突時(shí),可以進(jìn)workingcopy去看看是什么文件沖突,右邊會有紅綠色塊,并且也會有沖突標(biāo)記,在這里,你可以進(jìn)行選擇性discard(丟棄)不需要的代碼來解決沖突

按照上述的工作方式,我已經(jīng)和同事合作了一段時(shí)間,效果還不錯(cuò),給我們的工作帶來很多便利
如果有任何問題可以問我,我盡量解決~O(∩_∩)O

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 因?yàn)樵奶L超出字?jǐn)?shù),Lesson 3 就放在另一篇文章里 How to Use Git and GitHub 標(biāo)...
    赤樂君閱讀 5,488評論 1 5
  • 源代碼管理工具的起源 為什么會出現(xiàn)源代碼管理工具? 為了解決在軟件開發(fā)過程中,由源代碼引發(fā)的各種蛋疼繁瑣問題 源代...
    小白文_Vincent閱讀 3,542評論 2 8
  • 順序:房,路,樹,秋千,人,草,花 性別:男 年齡:24 想要解決問題: 畢業(yè)兩年依舊迷茫,對未來特別焦慮。不清楚...
    喜拓齋閱讀 720評論 2 2
  • 西南聯(lián)大起于憂患。 “七七事變”,日本全面侵華,中國全面抗戰(zhàn)爆發(fā),日軍自北而上入侵,北大、清華、南開這三所大學(xué)被迫...
    北冥有魚呀閱讀 1,943評論 1 9
  • 生命最是無常,也最是情理之中。 此刻的思緒是被外面的鞭炮聲引起的,鑒于最近發(fā)生的事,我心覺這“聲”怕也...
    等冬閱讀 351評論 0 0

友情鏈接更多精彩內(nèi)容