簡體   English   中英

將默認分支更改為從master檢出到開發

[英]Change default branch to checkout from master to develop

在一個新的存儲庫上,我經常發現自己已經對master分支進行了更改,當然我應該從develop分支開始。
當然,在開始進行更改之前,我應該先創建一個功能分支,在這種情況下,我會發現自己在開發中而不是開發中。
但是git中是否還有設置可以更改默認的clone / checkout分支進行開發?

是的,有一種方法可以做到。

當您運行git clone <url>您的Git會調用其他Git。 另一個Git有一個存儲庫; 您的Git會為其存儲庫制作一個新副本。

如果您提供了-b branch參數傳送 git clone使用 Git 結束與克隆過程git checkout branch 因此,這是最簡單的方法,但是,如果您忘記運行git checkout ,那么您可能也會忘記-b參數。

如果您提供-b branch ,那么您的Git將從另一個 Git獲得建議的最佳分支 然后,您的Git將其用於最后的git checkout步驟。 因此,如果您有權訪問其他 Git存儲庫,則只需去那里更改其建議的分支。

其他Git將建議的分支由該存儲庫中已簽出/當前的分支確定。 由於大多數服務器存儲庫都是“裸機”(沒有工作樹),因此您實際上無法在其中簽出分支,但它們仍具有當前分支。 您可以使用git symbolic-ref更新它:

server$ cd repo
server$ git symbolic-ref HEAD refs/heads/develop

如果您無法登錄服務器,則服務器可能會或可能不會提供某種方式來執行此操作。

git簽出的默認分支是由遠程倉庫的HEAD決定的,該HEAD幾乎總是指向master 我不知道會更改clone的默認值的本地設置。 (您可以通過警告來近似表示這種行為;請參見下文。)由於git通常不能假定任何給定名稱的分支(包括master )都將存在於任意遠程中,所以我不希望它具有這樣的功能; 它依靠遙控器告訴它默認分支是什么(同樣,通過遙控器的HEAD )。

在許多分支模型中,默認情況下簽出master並不是對開發人員最方便的事情,但這是一個根深蒂固的約定。 因此,我的建議是適應您的工作流程習慣,而不要嘗試相反的做法。

但是有什么選擇呢?

對於給定的clone命令,可以使用--branch選項選擇最初簽出的內容

git clone --branch develop http://some.server/repo.git

在此基礎上,您可以定義別名以使用--branch選項進行克隆。 (但是,如果別名在沒有分支的倉庫中使用,別名將失敗。)

對於您可以控制的回購協議,您可以將HEAD更改為指向您選擇的分支,但是出於某些原因,我確實建議您不要這樣做。 首先,如果共享倉庫,可能會造成混亂。 (類似地,它可能會使構建工具的設置復雜化,盡管這實際上並不難處理。)但是我不願意這樣做的最大原因是,您在使用自己的存儲庫時會養成習慣,而這些習慣不會轉化為使用他人的回購協議。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM