【问题标题】:Why did my branch2 make changes to branch1? in Git为什么我的 branch2 对 branch1 进行了更改?在 Git 中
【发布时间】:2023-01-11 12:15:54
【问题描述】:

我有一个分支验证。我做出了承诺。我意识到我想尝试一个可能的解决方案。因此,我创建了一个名为 validation2 的新分支。我在 validation2 上工作了 30 分钟,弄得一团糟。

我意识到我在那个实验性解决方案上浪费了我的时间,所以我对自己说,“嗯,让我们回到验证,然后 git branch -D validation2。摆脱它。”

然而,真正奇怪的事情发生了。起初,我不得不切换回 OG 分支,称为验证。我使用了这个命令 --> git checkout 验证。

然后我惊慌失措,因为我使用该命令多次切换分支。我切换到我认为我已经在的分支:git checkout validation2。

然后我可以在两个分支之间切换。我第一次去了第二个,看到了我想要丢弃的悲惨代码。然后——这是我真正感到困惑的时候,我是个菜鸟——当我回到原来的分支“验证”时,我在第二个分支中所做的更改也在那里。

发生了什么?我不得不恢复到我在验证中所做的提交,其中有消息“内置验证”但是我正确做的关于可定制验证的所有事情都丢失了,尽管一个小时的工作但我想如果它更长?

我知道这是更多的叙述基础而不是代码基础,任何帮助都会有所帮助。以下是我的一些一般性问题。

在创建验证 2 之前,我是否应该将对可自定义验证代码的更改提交到分支验证?

如果我这样做了,那么分支 2 的代码不会自己写在分支 1 上吗?

【问题讨论】:

    标签: git branch commit


    【解决方案1】:

    尽管您努力使它尽可能清楚,但我们仍然缺乏很多信息来给您一个明确的答案。但:

    在创建验证 2 之前,我是否应该将对可自定义验证代码的更改提交到分支验证?

    是的,你应该这样做,但是 Git 不会让你从一个分支切换到另一个分支(然后再返回),如果它要覆盖某些东西……除非你犯了错误,冲进了“git checkout”-F" 选项,或 "git reset - 难的“ 从最开始。

    如果您这样做是为了强制执行被错误消息阻止的切换,则您可能丢失了一些数据。如果您不这样做,就没有理由造成这样的损失。

    请注意 git stash 存在,当您需要将最近的更改存储在某个地方,当您想要检查某些内容时,但请先花时间练习 Git,否则您可能会忘记您隐藏的内容并变得更加困惑。

    尝试做 git log --graph validation validation2 以及更好地了解您的提交实际上是如何放置在历史记录中的。

    然后——这是我真正感到困惑的时候,我是个菜鸟——当我回到原来的分支“验证”时,我在第二个分支中所做的更改也在那里。

    如果您没有使用任何特定的合并命令,则有两个原因可能导致这种情况:

    • 要么您没有在validation2 上提交任何内容,然后两个分支仍然指向同一个地方。由于没有什么可检查的,因此您可以从一个分支移动到另一个分支,具体取决于您要记录下一次提交的分支;
    • 或者您将修改添加到尚未跟踪的文件(尚未对其进行git add)。未跟踪的文件不会被 Git 触及,即使它们位于同一目录中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-22
      • 2011-12-04
      • 1970-01-01
      相关资源
      最近更新 更多