Git强制覆盖本地跟踪文件,但不覆盖本地未跟踪文件

时间:2013-05-19 19:22:31

标签: git

我在名为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%肯定。

1 个答案:

答案 0 :(得分:2)

git fetch
git reset --hard origin/master