这里也曾提出过类似的问题,但我相信这个问题没有。
我有一个文件params.dat
,用于存储代码的一些参数值。
由于我经常更改参数值,因此该文件一直在变化,因此我将它的静态版本与其余代码一起添加到了我的仓库中,然后使用以下命令将其忽略:
git update-index --assume-unchanged params.dat
一切正常,除非我必须对文件的静态版本进行一些更改(这种更改很少发生)。我要做的是,首先通过以下方法忽略它:
git update-index --no-assume-unchanged params.dat
然后进行必要的更改,提交并将其推送到Github,最后再次忽略该文件。
这可以在我的主仓库中完美地工作,但是当我尝试git pull
从仓库中继续工作时,我得到:
error: Your local changes to the following files would be overwritten by merge:
params.dat
Please, commit your changes or stash them before you can merge.
Aborting
我试过了,说明这里,要做到:
git fetch --all
git reset --hard origin/master
但我得到:
error: Entry 'params.dat' not uptodate. Cannot merge.
fatal: Could not reset index file to revision 'origin/master'.
我也尝试过:
git stash
git merge origin/master
git stash pop
如规定在这里,但之后git stash
我得到:
No hay cambios locales que guardar
(大致翻译为“没有要保存的本地更改”)
需要说明的是:我对保持工作中的回购文件上的任何更改都不感兴趣params.dat
。我只希望它是我最后一次从家里推到Github的精确副本。
什么是处理此问题的合适方法?
在这种情况下,“没有要保存的本地更改”意味着git stash
看不到本地更改,params.dat
因为假定它没有变化。
拉取之前,必须使本地更改可见,并在params.dat
文件中删除它们(如果有):
$ git update-index --no-assume-unchanged params.dat
$ git checkout -- params.dat
$ git pull
$ git update-index --assume-unchanged params.dat
如果您感兴趣的其他文件中没有提交本地更改,请使用存储来保存它们并在拉出后还原:
$ git update-index --no-assume-unchanged params.dat
$ git checkout -- params.dat
$ git stash
$ git pull
$ git stash pop
$ git update-index --assume-unchanged params.dat
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句