繁体   English   中英

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

[英]Git force overwrite of local tracked files but not local untracked files

我在一个名为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

现在,我已经找到了这个问题的潜在解决方案,如

但是,在我的情况下,问题是目录p2包含未跟踪的文件,当我从远程仓库中取出时,我不想删除这些文件

那么,我如何从远程仓库中提取,覆盖我的本地跟踪文件,而不删除本地未跟踪文件?


注意: 这里的答案之一似乎适合我,但我不是100%肯定。

git fetch
git reset --hard origin/master

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM