赞
踩
目录
在本文中,您将在定义什么是Git分支以及删除分支的副作用之后,学习如何在Git中删除本地和远程分支。
如果您以前曾与Git一起工作过,以对Angular代码进行版本控制,那么您很有可能要删除一个或多个远程分支。开发人员经常发生这种情况,特别是在大型项目中。
在本文中,我们将学习:
在解决如何删除远程分支之前,我们将首先了解如何在本地Git存储库中删除分支。
注意:版本控制系统是现代Web开发中必不可少的工具,可以帮助您解决与每个任务相关的许多问题。Git是当今最受欢迎的版本控制系统之一。
在继续学习如何在Git中删除本地和远程分支之前,让我们定义什么是Git分支以及删除分支的副作用。
Git中的分支是指向提交的指针。如果删除分支,它将删除指向提交的指针。这意味着,如果删除尚未合并的分支,并且其他任何分支或标记都无法提交,则Git垃圾回收最终将删除不可达的提交。
让我们开始学习如何删除本地分支。
- $ git branch -a
-
- # *master # b1 # remote/origin/master # remote/origin/b1
- $ git branch -d b1 # Deleted branch b1.
注意:也可以使用-D等效于--delete --force命令的标志代替-d。这将使您可以删除本地分支,而不考虑其合并状态。
与本地分支不同,您不能使用git branch命令删除远程分支。但是,您需要使用git push --delete命令,后跟要删除的分支的名称。您还需要在git push之后指定remote名称(origin在这种情况下)。
- $ git branch -a
-
- # *master
- # b1
- # remote/origin/master
- # remote/origin/b1
-
- $ git push origin --delete b1
- # [...]
- # - [deleted] b1
既然我们已经了解了如何删除Git存储库中的本地和远程分支,那么假设您有多个Git分支。如何删除已经合并的分支?一次性的,而不是逐个删除它们。
注意:合并是使用git merge命令执行的,它只是意味着集成来自另一个分支的更改。
首先,您需要使用以下命令获取在远程存储库中合并的所有分支:
$ git branch --merged
如果您有一个合并分支,则可以使用以下命令简单地删除合并的本地分支:
$ git branch -d branch-name
如果要从远程存储库中删除它,请使用以下命令:
您可以删除不在远程存储库上的所有本地分支,可以使用以下bash命令:
$ git branch -r | egrep -v -f /dev/fd/0 <(git branch -vv | grep origin) | xargs git branch -d
让我们打破这个命令:
grep是一个命令行实用程序,用于在纯文本数据集中搜索与正则表达式匹配的行。它的名称来自ed命令g/re/p(全局搜索正则表达式并打印匹配的行),其作用相同。grep最初是为Unix操作系统开发的,但后来可用于所有类似Unix的系统以及某些其他操作系统,例如OS-9。
xargs(“eXtended ARGuments”的缩写)是Unix和大多数类似Unix的操作系统上的命令,用于从标准输入生成和执行命令。它将输入从标准输入转换为参数到命令。
如果您已经完成了本地Git分支,通常最好删除它们以释放它们的空间。您可以简单地运行以下命令:
$ git branch | grep -v "master" | xargs git branch -D
我们使用grep -v "master"命令搜索除master以外的分支,然后使用git branch -D命令将其删除。
在本文中,我们已经了解了如何从Git存储库中删除远程和本地分支。我们了解到:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。