gpt4 book ai didi

git - 非常奇怪的 git rebase 行为

转载 作者:太空狗 更新时间:2023-10-29 14:42:53 26 4
gpt4 key购买 nike

我不是 Git 专家,但在我的案例中我无法理解 git rebase 的奇怪行为:
1. 使用 git init
创建一个本地空的 git 仓库2. 创建一个简单的文本文件file.txt,内容如下:

111
222
333

3。使用 git add file.txtfile.txt 添加到索引并使用 git commit
提交更改4. 使用 git checkout -b feature
切换到新分支5. 更改file.txt 现在它有以下内容:

111
333

6.使用 git add file.txtfile.txt 添加到索引并使用 git commit
提交更改7. 更改 file.txt 现在它具有以下内容:

111
444
333

8.使用 git add file.txtfile.txt 添加到索引并使用 git commit
提交更改9.使用git checkout master切换到master分支;现在 file.txt 有以下内容:

111
222
333

10。更改 file.txt 现在它具有以下内容:

111
777
222
333

11。使用 git add file.txtfile.txt 添加到索引并使用 git commit
提交更改12. 更改 file.txt 现在它具有以下内容:

111
777
222
888
333

13。使用 git add file.txtfile.txt 添加到索引并使用 git commit
提交更改14.使用git checkout功能切换到功能分支;现在 file.txt 有以下内容:

111
444
333

15。使用 git rebase masterfeature 分支 rebase 到 ma​​ster 分支;现在我在 file.txt 中有冲突,该文件包含以下内容:

111
<<<<<<< HEAD
777
222
888
=======
>>>>>>> 2
333

而不是预期的:

111
<<<<<<< HEAD
777
222
888
=======
444
>>>>>>> 2
333

所以我的问题是:为什么文本 444file.txt 中消失了?可以吗?

最佳答案

当你执行 git rebase master 时会发生这种情况:

  1. 工作树重置为master
  2. 当前分支fork点之后的commit,一个一个应用

您的示例中的冲突发生在 fork 点之后 feature 中的第一次提交上。这是您删除带有 222 的行的提交。

So my question is: why did the text 444 disappear from the file.txt? Is it ok?

它并没有消失。 它还没有出现。在您解决此冲突并rebase --continue 后,它将在下一次提交中出现。

关于git - 非常奇怪的 git rebase 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47165394/

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