一次送出,是有關聯的更新的一個打包。比如,修複兩個不同的bug,應該是兩次送出。小型送出,使其他開發者更易了解那些更新。當出錯時,也更容易復原。
有了像暫存區域和暫存檔案某部分的工具,git很容易的建立細粒度的送出。
經常送出能讓你的送出更小,而且,再一次說,幫助你隻送出有關聯的更新。另外,它可以讓你你更加頻繁的跟其他人分享你的代碼。那樣,每個人更容易定期整合更新,避免合并沖突。相反,擁有少量的且巨大的更新,并且不經常分享,使得他人很難去解決沖突。
<a></a>
你隻有當代碼完成後才送出。這不意味着你在送出前必須完成一個完整的巨大的功能。恰恰相反:将功能的的實作分解成邏輯塊,記得盡早送出和經常送出。但是,不要當離開辦公室或一天結束時,把随便什麼内容都送出到倉庫。如果你僅僅因為你需要一個感覺的工作區(如切換分支,拉取更新等)需要臨時送出,考慮使用git的stash功能作為替代。
當想送出一些你“想當然的以為”已經完成的東西時,請抵制住誘惑。徹底的測試以保證它确實完成了,并且沒有副作用(至少根據目前的情況判斷)。當送出半成品到你本地倉庫,你還能能自己原來自己;與推送/分享你代碼給其他人相比,測試你自己的代碼則更加重要。
在資訊的開頭,簡要介紹這次更新(通常做法是至多50字),用一個空行與後續的主體分離。資訊主體對于下述的問題應提供詳細的回答:
這次更新的動機是什麼?
與之前的實作有什麼不同?
使用祈使句,現在時态(使用change,而不是changed或changes),與諸如git merge指令生成的送出資訊一緻。
把你的檔案備份到遠端伺服器上是一個版本控制系統非常好的附加應用。但是,你不應該像備份系統一樣使用你的版本控制系統(vcs)。當進行版本控制時,你應該集中精力在語義上的送出(參考## 相關聯的更新),你不應該隻是填充檔案。
分支是git最強大的功能之一,并且這并非偶然:快速易用的分支功能從一開始就是核心需求。分支是幫助我們避免混淆開發過程中不同支線的完美工具。你應在你的開發工作流程中廣泛使用分支,諸如功能,修複缺陷,新想法….
git可以讓你選取諸多不同的工作流程,長期運作的分支(long-running branches),置頂分支(topic branches),合并或變基,git-flow…,你的選擇取決于幾個個因素:你的項目、整體的開發工作和工作流,以及(可能是最重要的因素)你和你的小夥伴的個人喜好。不管怎樣,一旦你選取了一個工作流,你就要確定每個人的工作都能與此工作流程保持一緻。
通過指令行擷取幫助
git官方網站
<a href="http://www.git-scm.com/" target="_blank">http://www.git-scm.com/</a>
免費線上資源
<a href="http://www.git-tower.com/learn" target="_blank">http://www.git-tower.com/learn</a>
<a href="http://rogerdudler.github.io/git-guide/" target="_blank">http://rogerdudler.github.io/git-guide/</a>
<a href="http://www.git-scm.org/book" target="_blank">http://www.git-scm.org/book</a>