我在名为p1
的本地目录中工作,其中包含一个git repo。添加分支并在添加的分支上进行提交后,我制作了目录p1
的副本并将其称为p2
。我的目的是在目录p2
中使用合并和重新定位(只是为了学习),同时在确定我想要合并/修改我的更改时从p1
推送到远程仓库。
但是,我偶然进行了合并,然后从p2
目录推送到远程仓库。这没关系,因为现在远程仓库具有我的git项目的正确状态。
但是,我现在需要用远程仓库中的内容替换目录p1
中的内容。这样,目录p1
将是最新的。
当我进入目录p1
并尝试从远程仓库取款时,我得到的是:
git pull
Updating e07d50d..287ec08
error: Your local changes to the following files would be overwritten by merge:
debug/external/subdir.mk
debug/makefile
debug/subdir.mk
input/parameters.cfg
main.cpp
Please, commit your changes or stash them before you can merge.
Aborting
现在,我找到了解决此问题的潜在解决方案,例如this。
然而,在我的情况下,问题是目录p2
包含我从远程仓库拉出时不想删除的未跟踪文件。
那么,如何从远程仓库中提取,覆盖我的本地跟踪文件,而不删除本地未跟踪的文件?
注意:其中一个答案here似乎适合我,但我不是100%肯定。
答案 0 :(得分:2)
git fetch
git reset --hard origin/master