如今,我已經使用本地git存儲庫與個人組的CVS存儲庫進行了幾個月的交互。 我已經制做了一個幾乎神經質的分支,其中大部分幸運地合併回個人行李箱。 可是命名開始成爲一個問題。 若是我有一個容易用簡單標籤命名的任務,可是我在三個階段完成它,每一個階段都包含它們本身的分支和合並狀況,那麼我每次均可以重複分支名稱,但這會使歷史有點混亂。 若是我在名稱中有更具體的說明,而且每一個階段都有單獨的描述,那麼分支名稱開始變得冗長並且難以處理。 git
我確實經過這裏的舊線程學習,我能夠開始用名稱中的/來命名分支,即主題/任務,或相似的東西。 我可能會開始這樣作,看看它是否有助於保持更好的組織。 github
命名git分支有哪些最佳實踐? 安全
編輯:實際上沒有人建議任何命名約定。 當我完成分支時,我會刪除分支。 因爲管理層不斷調整個人優先事項,我恰巧有幾我的。 :)做爲爲何我可能須要在任務上須要多個分支的示例,假設我須要將任務中的第一個離散里程碑提交到組的CVS存儲庫。 那時,因爲我與CVS的不完美交互,我會執行該提交而後殺死該分支。 (若是我在這一點上嘗試繼續使用相同的分支,我看到太多奇怪的事情與CVS交互。) 工具
我已經看到了基於我正在使用的工具的不一樣方案的混合和匹配。 因此我完成的分支名稱將是: 學習
名稱/特徵/問題跟蹤數/短說明 spa
這將轉化爲: 命令行
麥克/博客/ RSSI-12 /標誌修復 線程
這些部分由正斜槓分隔,由於它們在SourceTree中被解釋爲文件夾以便於組織。 咱們使用Jira進行問題跟蹤,所以包含該數字能夠更容易地在系統中查找。 當嘗試在提交拉取請求時嘗試在Github中找到該問題時,包括該數字也使其可搜索。 3d
繼farktronix的建議以後,咱們一直在使用Jira票號來表示相似的狀況,我打算繼續將它們用於git分支。 但我認爲票號自己可能足夠獨特。 雖然如farktronix所指出的那樣在分支名稱中包含描述性單詞可能會有所幫助,但若是您常常在分支之間進行切換,則可能須要更少的輸入。 而後,若是您須要知道分支名稱,請在Jira中查找故障單中的關聯關鍵字(若是您不知道它)。 此外,您應在每條評論中包含票號。 code
若是您的分支表明一個版本,則一般的約定是對分支名稱使用xxx(例如:「1.0.0」)格式,對標記名稱使用vx.xx(例如「v1.0.0」)(以免衝突) 。 另請參閱: is-there-an-standard-naming-convention-for-git-tags
請注意,如提交e703d7或提交b6c2a0d (2014年3月)中所示,如今是Git 2.0的一部分,您將找到另外一個命名約定(能夠應用於分支)。
「當你須要使用空間時,使用破折號」是一種奇怪的方式,說你不能使用空格。
由於命令行描述更常見的是使用虛線多字,因此您甚至不想在這些地方使用空格。
分支名稱不能有空格(請參閱「 分支名稱中哪些字符是非法的? 」和git check-ref-format
手冊頁 )。
所以,對於將由多字表達式表示的每一個分支名稱,使用「 -
」(破折號)做爲分隔符是個好主意。
我我的的偏好是在完成主題分支後刪除分支名稱。
我沒有嘗試使用分支名稱來解釋分支的含義,而是使用「Branch:」在該分支的第一次提交中啓動提交消息的主題行,若是主題包含在消息正文中的進一步說明不給我足夠的空間。
我使用的分支名稱純粹是在處理主題分支時引用主題分支的句柄。 一旦完成了主題分支的工做,我就會刪除分支名稱,有時會標記提交以供之後參考。
這使得git branch
的輸出也更有用:它只列出了長壽分支和活動主題分支,而不是全部分支。
爲何每一個任務須要三個分支/合併? 你能解釋一下這個嗎?
若是您使用錯誤跟蹤系統,則能夠將錯誤編號用做分支名稱的一部分。 這將使分支名稱保持惟一,而且您能夠在它們"ResizeWindow-43523"
添加一個簡短的描述性詞語,以使它們具備人類可讀性,例如"ResizeWindow-43523"
。 當你去清理分支時,它還有助於簡化操做,由於你能夠查找相關的bug。 這就是我一般用個人分支命名的方式。
因爲這些分支最終會合並回master,所以在合併後應該安全地刪除它們。 除非你與--squash
合併,不然若是你須要它,分支的整個歷史仍然存在。