清除分叉儲存庫中的上游分支是否安全?

清除分叉儲存庫中的上游分支是否安全?

當我分叉一個儲存庫時,上游儲存庫中的所有分支都會隨之而來。有時,當我只真正關心我正在處理的分支時,會有大量的上游分支。當我可以在本機儲存庫中設定兩個遙控器時,在兩個儲存庫中擁有相同的分支似乎是多餘的。

例如:

儲存庫 A 具有分支 A1,...,A1000。當我在 GitHub 中分叉此儲存庫時,我得到了一個具有相同分支 (A1,...,A1000) 的新儲存庫 B。我希望儲存庫 B 只包含我正在處理的分支(例如,B1 和 B2)。

是否有可能(甚至建議)從我的分叉中刪除上游分支,以使我和我的團隊的事情變得更簡單/更乾淨(即,我們分叉中唯一的分支是我們正在處理的分支) ?我至少還需要上游儲存庫的預設分支嗎?

答案1

是否有可能(甚至建議)從我的分叉中刪除上游分支,以使我和我的團隊的事情變得更簡單/更乾淨(即,我們分叉中唯一的分支是我們正在處理的分支) ?

這當然是可能的,儘管實際上沒有必要從分叉上刪除上游分支。當您git clone分叉儲存庫時,它只會克隆預設分支(除非您指定分支名稱,否則它將克隆該分支)。其他分支的歷史記錄甚至不會存在於本地,除非您git fetch想要特定的分支或git fetch --all

換句話說,刪除這些上游分支不會對您的工作流程產生重大改進。我能想到的唯一好處是,如果要篩選的分支較少,可能會更容易找到感興趣的分支。

無論如何,刪除遠端分支的命令(這不會刪除本地相應的分支,如果存在的話)git push origin :branchToBeDeleted

刪除本機分支(僅在本機儲存庫上,而不是遠端分支上)可以透過git branch -d branchToBeDeleted.

有關刪除本地和遠端分支的更多信息,請參見此處


我至少還需要上游儲存庫的預設分支嗎?

簡而言之,建議保留預設分支。我認為git不會讓您使用上面提供的語法刪除預設遠端分支(正如有人在這裡嘗試過的那樣):

remote: error: refusing to delete the current branch: refs/heads/master
To [email protected]:<user>/<repo>.git
! [remote rejected] master (deletion of the current branch prohibited)
error: failed to push some refs to '[email protected]:<user>/<repo>.git'

如果您不想保留預設分支,請進入 GitHub 或您使用的任何 Git 託管平台中該儲存庫的設置,並在嘗試刪除相關分支之前更改預設分支。

相關內容