我如何强制将本地文件覆盖在git pull
我的本地仓库包含一个文件名文件名与服务器上的文件名相同。
错误: 未跟踪的工作树文件“ example. txt ” 会被合并覆盖
我如何强制将本地文件覆盖在git pull
我的本地仓库包含一个文件名文件名与服务器上的文件名相同。
错误: 未跟踪的工作树文件“ example. txt ” 会被合并覆盖
当前回答
这是恢复变革的最佳做法:
git commit
提交您预置的更改, 以便将其保存在reflog 格式的reflog(见下文)git fetch
获取最新的上游变化git reset --hard origin/master
硬重置源主分支缩略reflog 格式的reflog 本地存储库中正在更新的记录分支和其他参考资料简简简简简简简reflog 格式的reflog是更改的历史历史.
因此,这总是一个伟大的实践 承诺。 承诺被附在折叠件上, 以确保您永远有办法检索删除的代码 。
其他回答
我也有同样的问题,而且出于某种原因,git clean -f -d
这就是为什么:出于某种原因, 如果你的档案被Git(通过.gitignore 条目,我想,通过.gitignore 条目)忽略了, 它仍然费了时间,拉拉拉,但一个清洁除非添加, 否则不会删除它-x
.
对于那些不喜欢的人reset
我喜欢这个方法:
git checkout branchname # go to your branch
git fetch origin branchname # fetch the remote
git checkout -b backup # optionally, mark your remote as a backup
git branch -f branchname origin/branchname # force your local branch to be equal to the fetched origin/branchname
重置索引和头部origin/master
,但不要重置工作树:
git reset origin/master
您可能会发现此命令有助于丢弃本地更改 :
git checkout <your-branch> -f
然后进行清理(从工作树上移走未追踪的文件) :
git clean -f
如果您想要除去未跟踪的文件之外, 还要删除未跟踪的目录 :
git clean -fd
只是做做
git fetch origin branchname
git checkout -f origin/branchname // This will overwrite ONLY new included files
git checkout branchname
git merge origin/branchname
因此,您可以避免所有不想要的副作用, 比如删除您想要保存的文件或目录, 等等 。