考虑以下情况
有两个文件
FileA
FileB
我对FileB进行了更改。在远程存储库中,有人对FileA和FileB进行了更改。我从上游拉入,FileA中存在合并冲突。
我修复了合并冲突,现在当我检查git status
时,我看到FileA已暂存,FileB已修改。
on branch master
Your branch is ahead of origin/master by 1 commit.
You have unmerged paths. (fix conflicts and run "git commit").
Changes to be committed:
modified: FileA
Unmerged paths: both modified FileB
在这里,您可以看到FileA在合并失败时处于暂存状态。但我没有修改它。现在,当我解析冲突文件FileB并提交时,FileA将在那里进行提交,但FileA实际上没有被我触及。
当合并失败的提交历史记录中出现数百个文件时,它变得如此困难,虽然它实际上并没有被我修改过。
我如何在Git中处理这种情况。
非常感谢任何帮助。谢谢!
答案 0 :(得分:1)
解决合并冲突时,git会为您提供手动解决冲突的信息。在您的情况下,git会通知您远程主服务器还包含FileA
中的更改,如果远程FileB
中的更改取决于FileA
中的更改,这可能会有所帮助,这可能是您需要的更改在FileB
手动解决冲突时要考虑到这一点。
解决冲突后,您需要暂停FileA
和FileB
。如果FileA
在没有任何更改的情况下暂存,则它将不会成为合并提交的一部分(合并提交将不会包含在FileA
的提交历史记录中)
注意:如果您对文件应用了LF / CRLF转换,则在暂存时可能会包含空格更改,因此它们将包含在合并提交中。
您可以通过将更改重新定位到分支机构来更新本地存储库,但您可能仍需要跟踪此更新引入的任何相关更改。
答案 1 :(得分:0)
Git不会单独管理文件,但是包含文件的分支,意味着您不会对文件进行更改,实际上每次都会推送本地分支状态。
在您的情况下,如果您的提交中未包含if ( RoleEnvironment.IsEmulator || RoleEnvironment.IsAvailable)
{
// Role is available
}
,那么推送您的分支将覆盖您在本地分支上的FileA
上的FileA
以及{{{}上的更改1}}会丢失。
您可以在Git here上阅读有关分支的更多信息。