【问题标题】:Git - edit files in branch while checking diffsGit - 在检查差异时编辑分支中的文件
【发布时间】:2015-01-04 07:28:25
【问题描述】:

我的 git 存储库中有两个分支:mastertesting

我已将Meld 设置为我的difftool,这样当我这样做时:

git difftool master..testing

它会打开并逐个文件显示这些分支之间的差异。

场景是:我在master 分支上做了一些工作,我想看看它与我的testing 分支有多大不同。签出master 后,我运行上述命令,它会打开difftool(一次一个文件)。

我的问题是:如果我在查看差异时将我在 master 分支中所做的更改应用于我的 testing 分支中的文件,会发生什么情况?那就是:如果我 编辑 testing 分支中的文件并签出我的 master 分支(diffttool 显然允许我这样做)会发生什么?

我觉得我会做这一切。

【问题讨论】:

  • 您将在您的 tmp 目录中编辑一个包含测试分支内容的文件
  • @AndrewC 是的,我知道。不知道会有什么后果?

标签: git branch git-branch git-checkout


【解决方案1】:

正如 Andrew C 在 cmets 中建议的那样,简短的回答是什么都不会发生。

我用一个主分支和一个测试分支安装了一个小型 repo。我对 master 分支进行了更改,然后运行了 git difftool。

两个关键:1)您运行 git difftool 并签出主分支。这是图片中的红色箭头。 Meld 正在向您显示主分支中文件的内容。这是 Meld 的左侧窗口。 2) 文件的测试分支版本在临时文件中。这是图片中的红色方块,在 Meld 的右侧窗口上方。

由于该文件的测试分支版本位于临时文件中,因此在该窗口中编辑和保存更改不会修改测试分支或任何分支中的任何内容。

您不会搞砸任何事情,但是如果您对这些临时文件进行更改,您可能会失去工作。 git difftool 严格用于查看差异。解决分支之间的差异需要 git merge/git mergetool。

【讨论】:

  • 感谢rickumali的详细解答!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-17
  • 1970-01-01
  • 1970-01-01
  • 2012-08-20
  • 1970-01-01
  • 2012-12-07
相关资源
最近更新 更多