我将LOCAL远程/源/主分支与我的本地主分支合并后,是否应该删除它?

时间:2014-05-30 16:56:27

标签: git fetch branching-and-merging

我从GitHub执行了一次提取,以便我可以检查任何更改。这在我的本地机器上创建了一个remotes/origin/master分支,我可以检查,环顾四周等等。

我做了:

git fetch origin

一切都很好,所以我结帐回我当地的主分支机构,并将origin/master合并到其中。一切都很顺利。我做了:

git checkout origin/master

# Look around, see everything is pk

git checkout master
git merge origin/master

现在我想知道,我可以(并且应该)删除本地 origin/master分支吗?我试图通过:

git branch -d origin/master

但它不会让我,错误信息是

  

错误:找不到分支'origin / master'。

我在合并后删除了本地分支,所以我想知道为什么我现在不能这样做,如果我应该这样做,如果是的话,怎么样?

2 个答案:

答案 0 :(得分:3)

消除歧义:master originorigin/master本地回购

关于你是否应该删除你的远程主分支你的意思,你没有说清楚,因为实际上,你可能指的是两个不同但相关的分支

远程master 上的

origin

这是您的远程来源的master分支。 如果 您要删除它,则可以

git push origin --delete master

# Or
git push origin :master

然而,在典型的Git工作流程中,Git用户希望因各种原因保留该分支,包括(但不限于):

  1. 与其他人分享master分支机构的工作。
  2. 将完成的工作备份到master分支。
  3. 鉴于此,即使您单独工作,通常也没有充分理由在遥控器上删除此分支。

    本地仓库中的远程跟踪分支origin/master

    这是您本地仓库上的远程跟踪分支,用于跟踪远程masterorigin分支的状态。要删除远程跟踪分支,您需要使用--remotes-r标记(如git branch文档中所述):

    git branch --remotes --delete origin/master
    

    正如documentation for git branch所述:

    -r
    --remotes
    
         

    列出或删除(如果与-d一起使用)远程跟踪分支。

    但是,在大多数情况下,删除master的远程跟踪分支通常不是一个好主意,因为它可以帮助您跟踪对远程主分支的更改。

    作为meager point's out,在您实际使用远程跟踪分支跟踪的分支完成之前,通常不会删除远程跟踪分支。一个典型的情况,如果你有一个远程feature分支,你从遥控器中删除它:

    git push origin --delete feature
    

    然后将本地存储库引用更新为“修剪”过时的远程跟踪分支:

    git fetch origin --prune
    
    # Or shorter
    git fetch origin -p
    

    但是,在master分支的情况下,您从未真正“完成”该分支,因为对于大多数Git工作流,它代表了主要的,规范的开发和历史记录。

    请阅读

    要了解有关使用远程分支机构的更多信息,请阅读

答案 1 :(得分:1)

您应该能够删除本地副本。考虑到它是其他人也在跟踪的,但是如果你有多个遥控器,即同事,那么删除它可能不是一个好主意,那么节省空间可能是可以的。

尝试:

git branch -dr origin/master

-d如果合并到上游,则删除。 -r仅用于远程跟踪分支。

我已经创建了一个新的git存储库,其中包含两个提交和一个本地主设置,以跟踪存在相同提交的远程主服务器。它适用于我,我在git version 1.7.10.4