==> git branch -a
* master
test
remotes/origin/master
remotes/origin/test
Run Code Online (Sandbox Code Playgroud)
当有人删除时remotes/origin/test,我仍然可以在我的电脑上看到它.
我知道我可以这样做并删除 test
==> git remote prune
==> git branch -d test
==> git branch -a
* master
remotes/origin/master
Run Code Online (Sandbox Code Playgroud)
但是如果我有更多本地分支,并且它们不在远程,那么我怎样才能快速删除它们?
如果从 GIT 存储库中删除了所有本地分支,如何删除它们。有什么命令吗?。我不想通过命令 gitbranch -D/-dbranch-name 来一一进行。
这是一个常见的用例,我克隆一个存储库,签出一个分支,做一些代码更改,进行多次提交,然后当它稳定时,我做一个推送到远程,最终分支被合并和删除.我离开了一个上游的当地分支机构.
我一直在寻找一种删除所有这些分支的安全方法.从描述来看,似乎git remote prune起源正是这样做的.但它似乎并不适合我.
看到以下行为,分支encrdb_init已被删除remote但git remote prune origin命令似乎没有修剪它.我不知道为什么.
$ git branch
bugfix/encrdb_init
* master
$
$ git remote prune origin
$
$ git checkout bugfix/encrdb_init
Switched to branch 'bugfix/encrdb_init'
Your branch is based on 'origin/bugfix/encrdb_init', but the upstream
is gone.
(use "git branch --unset-upstream" to fixup)
$
$ git branch
bugfix/encrdb_init <<< shouldn't this have been pruned?
* master
Run Code Online (Sandbox Code Playgroud)
供参考添加输出 git remote show origin
$ git remote show origin
* remote origin
Fetch URL: …Run Code Online (Sandbox Code Playgroud) 我在本地的环境:
git-flow脚步
feature x在Sourcetree中创建一个,然后添加代码。commit包括选项create a pull request和对分支push的更改。feature xremotepull request我中选择 的选项Close {branch} after the pull request is merged。pull request然后将其合并到develop分支中。pull对我当地的分支机构进行了新的更改develop。注意pull request在将代码合并到 之前检查代码很重要develop,所以问题是:
有什么方法可以在创建后自动删除本地feature x分支吗?pulldevelop
*我尝试过,fetch但它不起作用。
假设git branch -a输出如下:
粗体是远程存储库中的那些分支(X,Y,Z),但我还没有检查它们,我什至不打算检查它们,它们与我不参与的项目有关。
是否有命令可以删除所有没有本地跟踪分支的远程分支(那些保存在 MY 存储库中的分支,而不是远程中的实际远程分支)?
编辑:我打算删除保存在我的存储库中的远程分支,显示远程分支的存在。我不想删除遥控器中的实际分支。
编辑 2:在对 mattmilten 的评论中澄清
您可以使用 重新创建所有远程分支git pull,但我并不总是git pull.
我经常只是git fetch origin master A B C然后合并或变基或做任何我想做的与分支主、A、B 或 C 的事情。
重点是,每当我“git pull”(出于某种原因)时,我不想要的所有分支都会被创建,而且似乎我没有简单的选择之后将它们删除。
我想找到这里很好描述的问题的解决方案- 简而言之,这个问题可以通过git branch -d $(git branch --merged)使用命令行来解决 - 问题是,是否有可能在 TortoiseGit 中做同样的事情?
有什么方法可以获取git branch -v管道命令的输出吗?确切地说,我只对分支的状态感兴趣,即是否感兴趣[gone]。
例如,给出以下git branch -v输出:
> git branch -v
master 32c59ad4 Some other comment
someDeletedBranch 6aacba47 [gone] Some Comment
Run Code Online (Sandbox Code Playgroud)
我如何获得someDeletedBranch裁判?
请注意,这与并不相同git branch --merged,例如,如果您要将拉取请求压缩到主服务器中,那么该解决方案将无法实现。
这主要与该问题有关,因为这将是缺少能够创建可靠脚本以删除远程不再存在的本地分支的部分。
我有一个本地和远程Git存储库.
在我的本地存储库中,我创建并切换到新分支: git checkout -b feature/niceNewFeature
我做我的编码git add .,git commit和git push我的feature/niceNewFeature分支远程存储库(如GitHub上).
在此之后,我创建了一个GitHub Pull Request来合并feature/niceNewFeature分支master- 在审查代码之后,我将这样做.
由于feature/niceNewFeature现在合并到master,我将在GitHub上删除它.
但是,在我的本地存储库中,如果执行git branch命令,仍会列出feature/niceNewFeature分支.
如何feature/niceNewFeature从本地存储库中删除分支,因为它已经与master远程存储库合并和删除?
git ×7
git-branch ×4
branch ×3
github ×2
bitbucket ×1
git-flow ×1
git-remote ×1
pull-request ×1
tortoisegit ×1