我们的团队最近搬到了 Git。我被烧了几次,因为我的鳕鱼不知何故最终没有像我想要的那样在开发分支中。从那以后,我不再删除我每天为处理代码而创建的分支,以防我以后需要这些分支。
我现在有很多分支,我不想每天都在 SourceTree 中查看。但是,我仍然想保存这些分支以防万一。有什么办法可以保存我的旧分支但将它们放在一边以免污染我的 Git 存储库?
我们的团队最近搬到了 Git。我被烧了几次,因为我的鳕鱼不知何故最终没有像我想要的那样在开发分支中。从那以后,我不再删除我每天为处理代码而创建的分支,以防我以后需要这些分支。
我现在有很多分支,我不想每天都在 SourceTree 中查看。但是,我仍然想保存这些分支以防万一。有什么办法可以保存我的旧分支但将它们放在一边以免污染我的 Git 存储库?
如果您想继续开发和发展该分支,则存在分支。如果不是这种情况,并且您只将分支保留为“书签”,则应改用标签(并删除分支)。
这样,git branch -a
看起来会更干净。如果有一天你想回去看看那个分支的样子,你可以随时签出标签,并最终根据那个标签重新创建一个分支。
我能想到的一件简单的事情是看看你是否可以用不同的视图配置 SourceTree - 一个只显示活动分支,另一个显示所有分支。
编辑:这仍然会显示所有已合并到活动分支中的分支。如果您在活动分支视图中有很多旧分支,我会质疑您是否需要保留它们。Git 确实记录了导致您的活动分支的所有提交,包括合并。因此,如果您想要保留旧分支的原因是查看引入错误的位置,那么您很幸运。只需删除所有这些分支并使用git bisect
. 但是,如果您想要它们的原因是标记发布,那么我建议您查看git flow。
我建议这样做的原因是分支的数量不是 git 的问题,而是你的问题。如果这些旧分支从您的存储库视图中消失,它们不会打扰您。他们不会以任何方式减慢 git 的速度。您还想存档它们的事实告诉我,您可能想回来查看它们。因此,只需在存储库的两个视图之间切换。
我没有广泛使用 SourceTree,所以我不知道它是否支持不同的视图。我知道 gitk 会 :gitk
和gitk --all
. 我希望 SourceTree 也能这样做。
希望这可以帮助。
在我的工作流程中,我删除git -d branchname
分支如果它尚未合并到另一个分支中,这将拒绝删除分支(至少,在我的 git 版本中,也许你需要更新?),如果它这样做,我保留分支以后再说。
如果我确定我想绝对摆脱一个分支,我使用git -D branchname
不会抱怨没有被合并的。
这似乎仍然是一个偏好问题。我更喜欢保留这些分支,以便通过查看 git 日志,我可以轻松地回答“为什么代码在一周前分支”的问题,而无需阅读所有提交消息并试图了解它们之间的联系。