【问题标题】:Remove file conflicts in git删除 git 中的文件冲突
【发布时间】:2011-11-12 08:08:41
【问题描述】:

我提交了我的代码,当我执行git pull 时,我发现了一些冲突。如何解决冲突,并且仅在未提交更改的情况下从拉取文件版本?

【问题讨论】:

标签: git conflict


【解决方案1】:

你可以的

git reset --hard HEAD^

git pull

取消暂存所有更改并进行快进合并。没有必要再解决冲突了。

【讨论】:

  • 但是这个链接说硬重置是在你提交之前:book.git-scm.com/…
  • 直到我没有解决我的冲突我不能做“git revert HEAD”
  • @Firdous:那么你应该重置 --hard HEAD^ 而不是 HEAD。这将在提交之前重置您的阶段。 Rmb,你所有提交的修改都会丢失!
  • fatal: 'revert' 是不可能的,因为你有未合并的文件。请在工作树中修复它们,然后根据需要使用 'git add/rm ' 来标记分辨率并进行提交,或者使用 'git commit -a'。
  • @Firdous:我想知道你是否创建了一个提交?您之前是否为您的更改输入过 git commit ?请使用 RESET 而不是 REVERT。
【解决方案2】:

您可以在更改之前将分支硬重置为提交,然后挑选每个后续提交。这将使您的分支进入一个包含除您的更改之外的所有内容的状态。

【讨论】:

  • 但是这个链接说硬重置是在你提交之前:book.git-scm.com/…
  • 硬重置将始终强制将您当前的分支设置为您指定的任何分支/标签。你可以随时做。危险在于它会丢弃未提交的更改,或者创建一个不再被引用的悬空分支。为了让自己在这些情况下得救,你总是可以在硬重置之前创建一个新的分支,因为在 Git 中创建分支非常便宜。然后,如果出现任何问题,您可以硬重置到您创建的临时分支,然后您会回到原来的位置(您可以再试一次!)
  • 好的,我做到了,是的,它有效(冲突已解决),当我执行“git status”时,没有修改过的文件(完美)。现在我怎么拉? b/c 如果我拉它会显示冲突错误。我无法理解,当我没有修改过的文件时,冲突是怎么来的?如您所见,我是 git 新手 :)
  • 我个人会加载 gitk (gitk --all&),然后右键单击我要抓取的每个提交(假设只有几个,如半打到两打)并单击“ Cherry-pick This Commit”,这样你最终会得到一个分支,除了你的更改之外,它的一切都在头上。然后你可以推动这个/做任何你想做的事情。它将排除您导致冲突的更改
猜你喜欢
  • 2017-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-27
  • 2011-03-08
  • 1970-01-01
  • 2011-05-18
相关资源
最近更新 更多