我希望我的本地和远程存储库始终在分支方面保持同步。
在GitHub上进行Pull Request审核后,我会将分支合并并删除(远程)。 如何在本地存储库中获取此信息并让Git也删除我的本地版本分支?
我希望我的本地和远程存储库始终在分支方面保持同步。
在GitHub上进行Pull Request审核后,我会将分支合并并删除(远程)。 如何在本地存储库中获取此信息并让Git也删除我的本地版本分支?
被投票选中的答案确实有可能删除主分支。请考虑以下实际例子。
我有两个功能分支hemen_README和hemen_BASEBOX,它们已经合并到develop分支,然后develop又合并到了master分支。这两个功能分支已经在远程被删除,但是在本地仍然显示。此外,我本地不在master分支上,而是在develop分支上。
在这种情况下
hemen@hemen-MXC061:~/data/projects/vagrant-webdev$ git branch -v -a
* develop 671ad6c Merged in hemen_README (pull request #1)
hemen_BASEBOX a535c0f added global exec paths to puppet manifest
hemen_README ba87489 Updated Readme with considerable details
master 8980894 [behind 7] Initial Vagrantfile, works for vagrant up. Also initial .gitignore
remotes/origin/develop 671ad6c Merged in hemen_README (pull request #1)
remotes/origin/hemen_BASEBOX a535c0f added global exec paths to puppet manifest
remotes/origin/hemen_README ba87489 Updated Readme with considerable details
remotes/origin/master 2f093ce Merged in develop (pull request #3)
所以如果我运行上面的部分命令
hemen@hemen-MXC061:~/data/projects/vagrant-webdev$ git branch --merged | grep -v "\*"
hemen_BASEBOX
hemen_README
master
注意它也显示了主分支,这将最终被删除。
无论如何,我成功地做到了。我将我的会话日志与您分享,以便您了解我是如何实现的。
hemen@hemen-MXC061:~/data/projects/vagrant-webdev$ git remote prune origin --dry-run
Pruning origin
URL: git@bitbucket.org:hemenkapadiapublic/vagrant-webdev.git
* [would prune] origin/hemen_BASEBOX
* [would prune] origin/hemen_README
hemen@hemen-MXC061:~/data/projects/vagrant-webdev$ git remote prune origin
Pruning origin
URL: git@bitbucket.org:hemenkapadiapublic/vagrant-webdev.git
* [pruned] origin/hemen_BASEBOX
* [pruned] origin/hemen_README
我刚刚检查了将要被修剪的内容,然后进行了修剪。从下面的分支命令可以看出我们已经处理了远程内容。
hemen@hemen-MXC061:~/data/projects/vagrant-webdev$ git branch -v -a
* develop 671ad6c Merged in hemen_README (pull request #1)
hemen_BASEBOX a535c0f added global exec paths to puppet manifest
hemen_README ba87489 Updated Readme with considerable details
master 8980894 [behind 7] Initial Vagrantfile, works for vagrant up. Also initial .gitignore
remotes/origin/develop 671ad6c Merged in hemen_README (pull request #1)
remotes/origin/master 2f093ce Merged in develop (pull request #3)
现在请继续删除本地分支
hemen@hemen-MXC061:~/data/projects/vagrant-webdev$ git branch -d hemen_BASEBOX
Deleted branch hemen_BASEBOX (was a535c0f).
hemen@hemen-MXC061:~/data/projects/vagrant-webdev$ git branch -d hemen_README
Deleted branch hemen_README (was ba87489).
hemen@hemen-MXC061:~/data/projects/vagrant-webdev$ git branch -v -a
* develop 671ad6c Merged in hemen_README (pull request #1)
master 8980894 [behind 7] Initial Vagrantfile, works for vagrant up. Also initial .gitignore
remotes/origin/develop 671ad6c Merged in hemen_README (pull request #1)
remotes/origin/master 2f093ce Merged in develop (pull request #3)
git ls-remote
和git show-ref
。 - user456814git symbolic-ref
和git update-ref
。 - user456814