由于本地更改,git pull on staging server失败

时间:2015-03-21 10:08:50

标签: git version-control

在我的登台服务器上,我有一个每两分钟执行一次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.

我不明白这些变化是如何被考虑的"本地变化"。有什么帮助吗?

1 个答案:

答案 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应该确保工作树是干净的。