【发布时间】:2012-07-17 12:20:06
【问题描述】:
在您开始使用 git 命令之前,我只使用 Windows 7-64 位和 TortoiseGit(当前为 v1.7.11.3),因为我是 Git 新手。
我的 DEV 分支早于当前的远程 master,我更新了 DEV,并解决了冲突。
DEV 分支已将提交推送到远程 DEV 分支,因此 rebase 是不可能的 - 据我了解。
为什么会发生这种行为,我该如何避免?
-
Checkout master(切换到本地master) -
Pull origin master(无冲突) -
Checkout DEV(切换到开发分支) -
Merge master(将本地 master 更改应用到本地 DEV 分支) - 修复冲突和
commit修改文件(自动合并和修复冲突文件)
当我打开log 时,我会在提交窗口中看到“父 1”文件和“父 2”文件,但未显示。这是奇怪的部分,(本地/远程相同)master 已删除的文件现在添加,新文件删除。
此外,尽管有一些应该!
新/删除的文件与我的预期相反。这是为什么呢?
如果一个文件是 master 中的新文件并且我合并到 DEV 分支,那么我希望它在合并后存在。
我的猜测是 DEV 分支被认为是主要的,而不是我合并到 DEV 中的分支(主)。
我无法使用Revert 重新创建已删除的文件(那些实际上是主文件中的新文件)。
【问题讨论】:
-
您是否有可能在某个阶段恢复了合并?如果是这样,那么您会发现重新合并会导致您出现此类问题,您将需要还原还原。 (不作为答案,因为我正在对您可能做了什么做出可能的假设)
-
DEV 分支之前没有与 master 合并,所以没有恢复合并。
-
您需要说出控制台命令是有原因的:它比用散文描述 UI 操作更明确,并且可以让您创建 SSCCE 让我们重现您的问题。我完全支持 IDE 和 GUI 工具,但是将自己限制在这些工具上会使您更难以准确地描述您的问题。
-
@millimoose 关于我的问题,您觉得令人困惑,或者说的不够清楚?仔细看你会发现我把git命令放在代码标签里了。
-
@Kim 我的意思是它不完整。如果我初始化一个新的存储库并输入这些命令,我可能不会收到您描述的错误。 (看到存储库将是空的。)我必须添加一些文件并创建冲突的更改并添加和删除它们,我仍然可能只是得到一个符合你和我期望的合并,而不是你的情况'遇到过。这个想法是,如果你不能描述如何重现你的问题,你就没有真正尝试隔离它。
标签: git merge branch branching-and-merging tortoisegit