代码之家  ›  专栏  ›  技术社区  ›  popov895

非常稳定的git重设基础行为

  •  2
  • popov895  · 技术社区  · 7 年前

    我不是Git专家,但我无法理解 git rebase 就我而言:
    1 git init
    文件txt文件 包括以下内容:

    111
    222
    333
    

    3、添加 文件txt文件 到索引使用 git add file.txt git commit
    4、使用切换到新分支 git checkout -b feature
    5、变更

    111
    333
    

    6.添加 到索引使用 git添加文件。txt文件 并使用提交更改 git提交
    7、变更 文件txt文件 现在它有以下内容:

    111
    444
    333
    

    8.添加 文件txt文件 到索引使用 git添加文件。txt文件 并使用提交更改 git提交
    9、使用git checkout master切换到主分支;现在 具有以下内容:

    111
    222
    333
    

    10、变更 文件txt文件 现在它有以下内容:

    111
    777
    222
    333
    

    11.添加 文件txt文件 到索引使用 git添加文件。txt文件 并使用提交更改 git提交
    12、变更 文件txt文件

    111
    777
    222
    888
    333
    

    13.添加 文件txt文件 到索引使用 git添加文件。txt文件 并使用提交更改 git提交
    文件txt文件 具有以下内容:

    111
    444
    333
    

    15、重新设置基础 特色 分支到 主人 分支使用 git rebase master 文件txt文件 该文件包含以下内容:

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

    而不是预期:

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

    所以我的问题是:为什么文本 444 从黑暗中消失 文件txt文件 ? 可以吗?

    1 回复  |  直到 7 年前
        1
  •  3
  •   janos slartidan    7 年前

    当你这样做的时候就会发生这种情况 git rebase master :

    1. 工作树重置为 master
    2. 逐个应用当前分支中分叉点之后的提交

    您示例中的冲突发生在中的第一次提交时 feature 在分叉点之后。这是您使用删除行的提交 222

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

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