在我的登台服务器上,我有一个每两分钟执行一次git pull
的cron作业,大部分时间一切正常,但有时我注意到我推送到回购的更改未被拉出,我检查问题并手动运行git pull
我收到错误:
error: Your local changes to the following files would be overwritten by merge:
{the file(s) that I had pushed to the repo}
Please, commit your changes or stash them before you can merge.
我不明白这些变化是如何被考虑的"本地变化"。有什么帮助吗?
答案 0 :(得分:0)
我之前提到过(" Cannot pull with rebase")git rebase
学习了--autostash
选项(git 1.8.5 +)。
你可以将它与重置 - 硬组合起来,以确保你安排的git upll的最终结果总是一个干净的状态:
git config rebase.autostash true
git pull -rebase
git reset --hard
假设您在git pull
更新的代理处没有本地提交或正在进行的工作(或者reset --hard
会删除
autostash
选项可确保工作树的未跟踪状态(无论出于何种原因)未阻止git pull
。
而reset --hard
应该确保工作树是干净的。