我来自Subversion背景,当我有一个分支时,我知道我正在处理的是"这些工作文件指向这个分支".
但是对于Git,我不确定我何时在NetBeans或Notepad ++中编辑文件,无论它是与主服务器还是其他分支相关联.
git在bash中没有问题,它告诉我我在做什么.
是否有一种简单的方法可以删除远程等效不再存在的所有跟踪分支?
例:
分支机构(本地和远程)
在本地,我只有一个主分支.现在我需要处理bug-fix-a,所以我检查它,处理它,并将更改推送到远程.接下来我用bug-fix-b做同样的事情.
分支机构(本地和远程)
现在我有本地分支机构master,bug-fix-a,bug-fix-b.Master分支维护者将我的更改合并到master中并删除他已经合并的所有分支.
那么现在的状态是:
分支机构(本地和远程)
现在我想调用一些命令删除分支(在本例中为bug-fix-a,bug-fix-b),这些分支不再在远程存储库中表示.
它会像现有的命令git remote prune origin,但更像是git local prune origin.
随着git remote prune origin我可以删除本地分支机构不在遥控器上的任何更多.
但我还想删除从这些远程分支创建的本地分支(检查它们是否未合并会很好).
我怎样才能做到这一点?
让我们说coolbranch我的存储库中有一个分支.
现在,我决定删除它(远程和本地):
git push origin :coolbranch
git branch -D coolbranch
Run Code Online (Sandbox Code Playgroud)
大!现在分支真的被删除了.
但是当我跑步的时候
git branch -a
Run Code Online (Sandbox Code Playgroud)
我还是得到:
remotes/origin/coolbranch
Run Code Online (Sandbox Code Playgroud)
需要注意的是,当我克隆一个新的存储库时,一切都很好,git branch -a并没有显示分支.
我想知道 - 有没有办法从branch -a列表中删除分支而不克隆新实例?
当我这样做git fetch origin并且origin有一个已删除的分支时,它似乎不会在我的存储库中更新它.当我这样做git branch -r时仍然显示origin/DELETED_BRANCH.
我怎样才能解决这个问题?
我遵循一个开发过程,为每个新功能或故事卡创建一个新的本地分支.完成后,我将分支合并为master,然后推送.
由于懒惰或健忘的结合,随着时间推移会发生的事情是,我最终得到了大量的本地分支,其中一些(例如尖峰)可能没有被合并.
我知道如何列出我所有的本地分支,我知道如何删除一个分支,但我想知道是否有一个git命令允许我删除所有我的本地分支?
以下是该git branch --merged命令的输出.
user@machine:~/projects/application[master]$ git branch --merged
STORY-123-Short-Description
STORY-456-Another-Description
STORY-789-Blah-Blah
* master
Run Code Online (Sandbox Code Playgroud)
所有删除列出的分支的尝试grep -v \*(根据下面的答案)都会导致错误:
error: branch 'STORY-123-Short-Description' not found.
error: branch 'STORY-456-Another-Description' not found.
error: branch 'STORY-789-Blah-Blah' not found.
Run Code Online (Sandbox Code Playgroud)
我正在使用:
git 1.7.4.1
ubuntu 10.04
GNU bash,版本4.1.5(1) -
发布GNU grep 2.5.4
怎么git rev-parse办?
我已经阅读了手册页,但它提出的问题多于答案.像:
挑选和按摩参数
按摩?那是什么意思?
我用作修订说明符的解析器(对SHA1),比如
git rev-parse HEAD^
Run Code Online (Sandbox Code Playgroud)
要么
git rev-parse origin/master
Run Code Online (Sandbox Code Playgroud)
这是命令的目的吗?如果没有,使用它来实现这一点是否正确?
我希望我的本地和远程存储库在分支方面始终保持同步.
在GitHub上进行Pull Request审核后,我合并并删除了我的分支(远程).我如何在本地存储库中获取此信息并让Git删除我的本地版本的分支?
在VSCode中,在我执行拉取请求并删除GitHub上的分支后,该分支仍然显示在Visual Studio代码中.如果我选择分支,它会按预期给出错误.
如何从VSCode中删除这些现已删除的分支 - 我可以自动执行吗?
列出并删除多个分支
与此同时__CODE__,这是我用于的另一个分支删除相关命令__CODE__:
示例 - 列出以.开头的所有分支 __CODE__
__PRE__
列表删除.注意:更换__CODE__与__CODE__删除没有警告
__PRE__
git ×9
git-branch ×4
branch ×2
github ×2
bash ×1
git-fetch ×1
grep ×1
pull ×1
repository ×1
ubuntu ×1