如何在本地存储库和远程存储库之间存储更改

Nu2*_*low 10 git github

我想隐藏本地存储库和远程源/主服务器之间的所有更改.在远程存储库中,在本地存储库中进行了一些提交,同时进行了一些其他更改.

  • 我想隐藏本地和远程之间的差异.
  • 放弃所有本地提交
  • 使本地存储库与远程同步.
  • 应用我的藏匿更改.

如何使用git命令实现此目的?

Sch*_*ern 14

我想隐藏本地存储库和远程源/主服务器之间的所有更改.

"stash"在Git中具有特殊含义,git stash未提交的更改放在特殊提交中以便稍后检索.当你有一些尚未准备好提交的工作时使用它,但你需要对存储库做一些事情,比如checkout另一个分支或推或拉.对于这个答案的其余部分,我将使用"藏匿"来表示git stash.

在远程存储库中,在本地存储库中进行了一些提交,同时进行了一些其他更改.

这种情况很正常.

我想隐藏本地和远程之间的差异.放弃所有本地提交

这些步骤不是必需的.Git可以解决这个问题.见下文.

使本地存储库与远程同步.

您将获得远程存储库的最新版本git fetch origin(假设已命名远程origin).这是安全的,不会修改任何本地分支.

应用我的藏匿更改.

没有必要将您的本地提交移开.Git可以将您的本地工作与遥控器合并.但是,如果您有未提交的工作,那么您将要隐藏它.git stash save将把你未提交的作品松散以待以后.

获取后,您可以git merge origin/master将您的工作与遥控器合并,或git rebase origin/master将所有更改放在遥控器上.

您可以在单个命令中执行获取和合并/ rebase.获取和合并使用git pull origin master.获取和重新使用git pull --rebase origin master.

现在您已经掌握了最新版本,您可以git stash pop恢复隐藏的更改.

git pull --rebase您应该通过远程工作更新本地分支机构的正常方式.很多合并只是更新遥控器将导致混乱的历史,变基使一切保持良好和线性.你不需要告诉它远程和分支,Git通常可以为你解决这个问题.正常的工作流程看起来像这样.

  • git stash save 如果你有未提交的工作.
  • git pull --rebase 从远程获取更新并应用它们
  • git stash pop 恢复你未提交的工作.