gpt4 book ai didi

Git - 复制没有历史记录的分支

转载 作者:行者123 更新时间:2023-12-02 19:46:09 25 4
gpt4 key购买 nike

我有一个非常困惑的分支,有很多提交,我用它来进行一些实验。
事实证明,我想保留这项工作的很大一部分,但它确实需要重构和清理。

所以我想将所有这些修改复制到一个新分支,没有历史记录,也不提交。
这样,我就可以清理它,启动一个适当的功能分支并删除困惑的分支。

Before:

D - E - F
/
A - B - C


After:

D - E - F
/
A - B - C
\
DEF (uncommitted)

我没有找到方法,非常感谢您的帮助。

谢谢:-)

最佳答案

您可以使用当前分支中的git reset --soft C:这将保留工作树

git switch oldMessyBranch
git switch -c newBranch

# Or, in one line:
git switch -c newBranch oldMessyBranch

# Then:
git reset --soft C
git commit -m "new squashed branch"

注意:与 Git 2.23+ ,您应该使用新的(仍处于实验阶段)命令 git switch .

从那里,您可以添加内容并创建新分支。

正如我在“Practical uses of git reset --soft?”中提到的

So, each time:

  • you are satisfied with what you end up with (in term of working tree and index)
  • you are not satisfied with all the commits that took you to get there:

git reset --soft is the answer.

关于Git - 复制没有历史记录的分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59223936/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com