救援git拉

时间:2016-05-13 08:10:16

标签: git bash shell

我使用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命令,但我想确保它是安全的,并且代码不会丢失。

3 个答案:

答案 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 ,您只需更新远程跟踪分支,稍后您就可以决定如何处理新提交,将它们全部合并,或者只是选择一些到您的主分支。