如何忽略Git pull上的以下错误消息?
您对以下文件的本地更改将被合并覆盖
如果我想覆盖它们怎么办?
我试过像git pull-f这样的方法,但没有任何效果。
要明确的是,我只想覆盖特定的更改,而不是所有更改。
如何忽略Git pull上的以下错误消息?
您对以下文件的本地更改将被合并覆盖
如果我想覆盖它们怎么办?
我试过像git pull-f这样的方法,但没有任何效果。
要明确的是,我只想覆盖特定的更改,而不是所有更改。
当前回答
试试这个
git fetch --all
git reset --hard origin/master
git pull origin master
对我来说,用力拉
其他回答
这是我解决问题的策略。
问题陈述
我们需要对10多个文件进行更改。我们尝试了PULL(git PULL origin master),但git喊道:
错误:您对以下文件的本地更改将被覆盖通过合并:请先提交更改或将其隐藏合并
我们尝试执行commit,然后执行pull,但它们也不起作用。
解决方案
实际上,我们处于肮脏的阶段,因为这些文件位于“暂存区”,也就是“索引区”,有些文件位于“头部区”,即“本地Git目录”。我们想从服务器中提取更改。
查看此链接,以明确方式获取有关Git不同阶段的信息:Git阶段
我们遵循以下步骤
git stash(这使我们的工作目录变得干净。您的更改通过git存储在堆栈中)。git pull-origin master(从服务器中拉取更改)git stash apply(应用堆栈中的所有更改)gitcommit-m“message”(已提交更改)git推送原始主机(将更改推送到服务器)git stash drop(删除堆栈)
让我们了解您何时以及为什么需要隐藏
如果您处于脏状态,则意味着您正在对文件进行更改,然后由于任何原因,您被迫拉入或切换到另一个分支以进行一些非常紧急的工作,因此此时,在提交更改之前,您无法拉入或转换。隐藏命令在这里作为帮助。
摘自ProGIT,第2版:
通常,当你在项目的一部分工作时一个混乱的状态,你需要切换分支来处理其他东西。问题是,你不想完成了一半的工作,这样你就可以稍后回到这一点。这个这个问题的答案是gitstash命令。Stashing需要工作目录的脏状态–即修改后的跟踪文件和暂存更改–并将其保存在未完成的堆栈中您可以随时重新应用的更改。
如果你想覆盖特定的更改,你需要一些方法告诉它你想忘记哪些更改。
您可以尝试使用gitstash-patch选择性地隐藏您想要放弃的更改,然后使用gitstash drop删除该更改。然后,您可以按正常方式拉入远程更改并合并它们。
最简单的解决方案是:
git reset --hard && git pull
git-stash-save——保持索引对我不起作用。
下面的命令按预期工作。
git reset --hard
git pull
如果您不需要,它会覆盖所有本地更改。
我是git新手,不确定我的解决方案是否是个好主意。
我测试了所有答案,但没有一个对我有用!
但我找到了另一个解决方案:
1. Backup both of local and repository versions of the file.
2. Delete the file from repository.
3. git add .
4. git commit
5. git push
希望这有帮助。