如何在git中强制拉到文件?

时间:2011-07-20 22:16:52

标签: git github

我遇到合并冲突,我通常只需重命名文件并从repo ti解析或手动编辑编辑。这一次,我对具有冲突的文件进行了更改,并且它位于暂存区域中。 我尝试使用git reset HEAD <file>,然后再次使用git pull,但我仍然遇到合并冲突。 有没有办法强制覆盖麻烦的文件?

以下是我收到的消息: 错误:合并将覆盖对以下文件的本地更改:     分贝/ profile_edit.php

我将文件名更改为profile_edit.phpbkup。 然后我做git pull 我仍然得到同样的错误。为什么是这样?该文件甚至不再存在,那么它如何被替换?

感谢。

2 个答案:

答案 0 :(得分:0)

如果你想将你同时进行的所有更改丢弃到上游:

git fetch origin
git push -f . origin/branchA:branchA

如果你想解决有利于上游的冲突:

git fetch origin
git merge -s recursive -Xtheirs origin/branchA

希望这会有所帮助。

答案 1 :(得分:0)

您可以使用git reset filename将文件从索引中删除,如果您不希望这些更改将--hard切换添加到重置位置。

冲突本身需要解决。

一个选项是git fetch remoteRepo 这将获取远程仓库,但不会尝试将分支合并在一起。

要区分您感兴趣的文件的两个版本,请使用git diff HEAD remoteRepo/remoteBranch <fileName>

如果存在合并冲突,并且您希望保留两个文件的内容,则除了解决冲突之外,您无法做任何事情。