我使用git pull
确保本地存储库是最新的。但是,git pull
有时会失败。如果您有未提交的更改,则git pull
会失败。是否有git或shell选项来确保如果命令失败,脚本的其余部分会继续吗?
目前的脚本是:
if [ -d "some-repo" ]; then
cd "some-repo"
git pull
#RESCUE????
else
git clone git@github.com:USERNAME/some-repo.git
cd "some-repo"
fi
我不想结账,我并不关心不同分支机构的工作。我知道可以执行git reset --hard
或使用--force
命令,但我想确保它是安全的,并且代码不会丢失。
答案 0 :(得分:1)
您可以在git pull
条款中写下if
:
if git pull; then
# Here, git has successfully pulled
else
# Here goes code for dealing with a failed pull
fi
答案 1 :(得分:0)
我说你可以在拉回购物之前添加这两行。
git add .
git commit -am "sync repo"
只要没有合并冲突,这就应该有效。
答案 2 :(得分:0)
在你的情况下,我认为 git fetch 更好。 git pull 始终将远程跟踪分支合并到当前的HEAD中。它可能是一个非快进合并,如果您与其他人合作,这可能会使您的签出分支的历史有点混乱。通过 git fetch ,您只需更新远程跟踪分支,稍后您就可以决定如何处理新提交,将它们全部合并,或者只是选择一些到您的主分支。