我不只是在谈论分支指针: - )
假设我已经完全合并了分支,现在我想让它看起来像那个分支从未存在过。在我看来,我应该能够从repo中完全修剪该分支(即删除该分支上的所有提交,因此它永远不会在历史中显示)而不牺牲完整性。有没有办法做到这一点?
是否有可能将剩下的分支推到上游而不推动那个我宁愿忘记?
编辑:我在一个例子中添加了试图说明这个更好的
git checkout master
git commit -m "C1"
git branch b1
git commit -m "C2"
git checkout b1
git commit -m "C3"
git checkout master
git merge -m "C4" b1
git branch -d b1
给出了这个结果
--C1--+----C2----+--C4
\ /
+--C3--+
我想要做的是删除C3,但保留C4完全原样,以便历史看起来是线性的。在我看来,无论C3是否存在,C4的sha-1都是相同的,所以我不明白为什么我需要重新选择/樱桃选择呢
答案 0 :(得分:2)
是的,可以完全删除分支:
git branch -D branchname
git push origin :branchname
-D
强制删除分支,即使分支尚未合并。
答案 1 :(得分:0)
您可以使用以下命令执行此操作:
git branch -D branchname.
git reflog expire --expire=now --all
git gc --aggressive --prune=now
git repack -a -d -l
有关每个命令的更多信息,请参阅git文档:https://git-scm.com/docs
答案 2 :(得分:-1)
您尝试过使用:
$git branch -d
?