使用git,如何删除远程分支的本地副本?或者至少拉动而不合并?

Pat*_*ick 10 git branch branching-and-merging git-branch

另一位开发人员删除并重建了一个名为"development"的远程分支,我已经签出了一份副本.他做了这个删除和重建,以消除它的一些残余.哪个好.

但是,当我做"git pull origin development"时,它会不断出现合并冲突.但我不想要我的副本.我只想要原产地.

那么如何删除我的本地副本并将其拉回来?或者至少在没有将我的本地信息合并到它的情况下拉?

Gre*_*con 16

从原始遥控器获取最新的更改.此步骤是您在问题中要求的"拉不合并"步骤.git pull相当于git fetch后面跟着git merge.

$ git fetch origin
Run Code Online (Sandbox Code Playgroud)

必要时去一个干净的分支.

$ git stash
Run Code Online (Sandbox Code Playgroud)

使用干净的分支,如果您还没有,请切换到开发分支.

$ git checkout development
Run Code Online (Sandbox Code Playgroud)

最后,强制您的本地开发分支指向与原始开发分支相同的提交.

$ git reset --hard origin/development
Run Code Online (Sandbox Code Playgroud)

总以为使用前的两倍git reset --hard,与rm -rf.它是一个尖锐,有用的工具,但如果你不小心它可以破坏工作.

  • 太棒了,这正是我想要的。我已经在中立状态下工作了,所以我不需要藏匿处,也不担心失去任何工作。太棒了! (2认同)

mor*_*ion 10

要永久删除本地分支,请执行以下操作:

git branch -D <branch-name>
Run Code Online (Sandbox Code Playgroud)

从远程仓库获取更改但不合并:

git fetch
Run Code Online (Sandbox Code Playgroud)

现在创建并签出远程分支的本地副本并跟踪它:

git checkout -b development origin/development
Run Code Online (Sandbox Code Playgroud)

git应该告诉你"分支开发设置为从源跟踪远程分支开发",并且它在本地切换到开发分支.

  • 你为什么要更新主分支?(你的意思是:```git fetch``?) (2认同)