【问题标题】:With git, how do I remove a local copy of a remote branch? Or at least pull without merging?使用 git,如何删除远程分支的本地副本?或者至少在不合并的情况下拉动?
【发布时间】:2013-03-01 16:50:49
【问题描述】:

另一个开发人员删除并重建了一个名为“开发”的远程分支,我已经有一个签出副本。他做了这个删除和重建以从中删除一些杂物。太棒了。

但是当我进行“git pull origin development”时,它会不断出现合并冲突。然而,我不想要我的副本中的内容。我只想要原产地。

那么我如何删除它的本地副本并将其拉回?或者至少在不将我的本地信息合并到其中的情况下进行拉取?

【问题讨论】:

    标签: git branch git-branch branching-and-merging


    【解决方案1】:

    从源远程获取最新更改。此步骤是您在问题中要求的“不合并拉取”步骤。 git pull 相当于git fetch 后跟git merge

    $ git fetch origin
    

    如有必要,前往干净的分支。

    $ git stash
    

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

    $ git checkout development
    

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

    $ git reset --hard origin/development
    

    在使用git reset --hard 之前务必三思而后行,就像rm -rf 一样。它是一种锋利而有用的工具,但如果你不小心,它可能会破坏工作。

    【讨论】:

    • 太棒了,这正是我想要的。我已经在中立状态下工作,所以我不需要藏匿处,也不担心丢失任何工作。太棒了!
    • @pthurmond 太棒了!我很高兴它有所帮助。
    【解决方案2】:

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

    git branch -D <branch-name>
    

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

    git fetch
    

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

    git checkout -b development origin/development
    

    git 应该告诉您“分支开发设置为从源跟踪远程分支开发”,并且它已在本地切换到开发分支。

    【讨论】:

    • 为什么要更新主分支? (你的意思是:git fetch?)
    猜你喜欢
    • 2017-03-30
    • 2011-05-02
    • 2013-12-13
    • 2014-03-06
    • 2011-01-01
    相关资源
    最近更新 更多