【问题标题】:Git Checkout branch merge old filesGit Checkout 分支合并旧文件
【发布时间】:2015-06-16 06:46:41
【问题描述】:

我有一个分支名称test1,我通过以下命令创建了一个名为test2 的新分支。目前我的分支是test1我运行这个命令

$ git checkout -b test2

它会创建新分支并在 test2 分支上工作。在完成我在test2 分支上的任务后,我切换回原来的分支test1,但它也合并了test2 分支的更改,这不好。因为我想分离两个分支的逻辑。现在我原来的分支也变得不稳定。 我只想知道为什么结帐时test2 代码会合并到我的test1 分支中?

【问题讨论】:

  • 这不应该发生。请发布整个命令。
  • @MarounMaroun 我只是运行第一个命令,然后在新分支上工作,然后是简单的 checkout test1 分支。
  • 除非在 git 中明确添加的文件不受版本控制。我是否正确假设在 test2 处于活动状态期间创建的文件在切换到另一个分支时仍然存在?

标签: git git-branch git-merge


【解决方案1】:

未提交的更改不属于任何特定的分支,这就是为什么它们只会保留在工作目录中。当这些更改与来自其他分支的更改发生冲突时,git checkout 将中止并说出来。

您必须在分支 test2 上提交您的更改。之后,当您结帐 test1 时,这些更改将消失。

请注意,人们通常不愿意提交更改,因为他们还没有完成他们的工作。在 git 中,这几乎不是问题,因为很容易修改最后一次提交,或者使用 git reset HEAD^ 撤消它并重新提交最新的更改。

【讨论】:

    【解决方案2】:

    我认为您确实将 test2 合并到 test1。

    不管怎样,你可以使用下面的 git 命令来清除你的 test1 分支。

    git log               # copy the latest commit id before commits you committed on test2
    git reset <commit id> # reset to that commit 
    git checkout .        #  checkout the modifies you merged into test1 from test2
    

    现在分支 test1 是明确的

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-17
      • 1970-01-01
      • 1970-01-01
      • 2012-03-21
      • 2017-05-05
      • 2023-03-06
      • 2016-04-04
      • 1970-01-01
      相关资源
      最近更新 更多