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

4
我在名为p1的本地目录中工作,该目录包含一个git仓库。添加分支并在新添加的分支上进行提交后,我复制了目录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

现在,我已经找到了解决这个问题的潜在方法,例如这个
然而,在我这种情况下,目录p2包含未跟踪的文件,我不希望在从远程仓库拉取时删除它们。 那么,如何在覆盖本地跟踪的文件的同时,不删除本地未跟踪的文件,从远程仓库拉取?
注意:这里的一个答案似乎适合我,但我不确定。

1个回答

3
git fetch
git reset --hard origin/master

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接