如何清理远程仓库分支

如何清理远程仓库分支

为什么要清理远程分支

随着每天的代码提交、合并,仓库中会有越来越多的冗余分支。这么多死分支不仅会掩盖真正在使用的分支,而且也为管理带来不便。

关于分支的常用操作命令

Git命令作用
git branch查看本地所有分支
git branch -r查看远程仓库所有分支
git branch -a查看本地和远程仓库所有分支
git checkout -b + 新分支名新建本地分支并切换
git branch --no-merged + 分支名查看没有被合入到指定分支的分支
git branch --merged + 分支名查看已经合到指定分支的分支
git branch -d
git fetch同步远程仓库的分支到本地
git fetch -p删掉远程仓库没有的本地分支
git push origin --delete + 分支名删除远程仓库分支

注:git branch -D 用来删除没有被合入主分支的分支。

​ 建议每次同步远程分支都使用 git fetch -p 命令。

查看哪些远程分支该被清理

for branch in `git branch -r --merged origin/DEV_Message_Editor | grep -v HEAD`; do echo $branch `git show --format="%ci %cr %an" $branch | head -n 1`;done

这行命令首先是过滤出所有已合入 DEV_Message_Editor 的远程分支(git branch -r --merged origin/DEV_Message_Editor | grep -v HEAD),然后遍历每个分支,展示(git show)其最后一次提交的绝对时间(%ci)、相对时间(%cr)和作者(%an)信息。结果如下:

origin/AUTO_Add_Default_and_Fault_states_RAIDPOD25-529 2020-06-15 16:36:02 +0800 5 weeks ago Eurus Yanan Liu
origin/AUTO_Add_Overflow_state_RAIDPOD25-529 2020-06-12 17:28:51 +0800 6 weeks ago Jim Yuanjun Liu
origin/AUTO_Another_button_position_will_changed_when_long_press_one_button 2020-06-15 17:23:31 +0800 5 weeks ago czhang28
origin/AUTO_Focused_state_layout_support_RAIDPOD25-502 2020-06-09 16:38:54 +0800 6 weeks ago czhang28
origin/AUTO_Link_button_and_menu_can_be_configured_to_show_hide-RAIDPOD25-342 2020-05-12 16:00:10 +0800 2 months ago ELiu8
origin/AUTO_Link_button_support_RAIDPOD25-340 2020-05-13 15:52:45 +0800 10 weeks ago DDing1
origin/AUTO_Menu-Keyboard_support_RAIDPOD25-348 2020-05-26 15:30:23 +0800 8 weeks ago czhang28
origin/AUTO_Menu-Select_an_item_can_load_the_input_content_and_display_RAIDPOD25-345 2020-05-22 14:52:31 +0800 9 weeks ago ELiu8
origin/AUTO_Menu_Display_all_items_getting_from_API-RAIDPOD25-343 2020-05-12 15:47:24 +0800 2 months ago ELiu8
origin/AUTO_Menu_Keyboard_support_in_ag_grid_RAIDPOD25-348 2020-05-26 16:12:05 +0800 8 weeks ago DDing1
origin/AUTO_Menu_Localization_support_auto_RAIDPOD25-347 2020-05-22 15:13:00 +0800 9 weeks ago DDing1
origin/AUTO_Place_holder_support_in_ag-Grid_RAIDPOD25-504 2020-06-09 15:53:47 +0800 6 weeks ago czhang28
origin/AUTO_Refactor_e2e_test_cases_for_message_input_helperRAIDPOD25-505 2020-06-09 15:53:47 +0800 6 weeks ago czhang28
origin/AUTO_Remove_nextTab_input_in_message_input_testpage 2020-06-17 13:33:06 +0800 5 weeks ago czhang28
origin/AUTO_Spike_Test_page_and_example_page_refinement_for_contribution-RAIDPOD25-505 2020-06-09 17:08:59 +0800 6 weeks ago Elon Xiang Qi
origin/AUTO_Test_page_review_and_refinement_for_message_editor_RAIDPOD25-528 2020-06-12 09:27:38 +0800 6 weeks ago Eurus Yanan Liu
origin/AUTO_input-Display_default_place_holder_RAIDPOD25-326 2020-05-12 15:20:03 +0800 2 months ago czhang28
origin/AUTO_input-Keyboard_support_RAIDPOD25-329 2020-06-05 13:17:13 +0800 7 weeks ago czhang28
origin/AUTO_input_Configure_min_max_row_of_input_RAIDPOD25-324 2020-05-26 16:03:53 +0800 8 weeks ago Jim Yuanjun Liu
origin/AUTO_link-menu_auto_script_refinement_RAIDPOD25-474 2020-06-09 15:40:58 +0800 6 weeks ago DDing1
origin/AUTO_scripts_creation_of_fontSize_and_position_of_menu_RAIDPOD25-341 2020-05-13 13:28:48 +0800 10 weeks ago JJin5
origin/Auto_Sample_Structure_Message_Editor_Latest 2020-05-07 08:38:16 +0800 3 months ago Nirvana Shuangyang Lu
origin/Auto_for_329_349_351_505_stories 2020-06-09 14:21:51 +0800 6 weeks ago Jim Yuanjun Liu
origin/Auto_message_editor_Refine_Sprint8.2 2020-05-26 16:12:05 +0800 8 weeks ago DDing1
origin/Auto_message_editor_manual_json_update 2020-06-03 12:31:47 +0800 7 weeks ago Ada Cheng
origin/Auto_message_editor_test_plan_RAIDPOD25-323 2020-05-20 16:27:03 +0800 9 weeks ago Ada Cheng
origin/Auto_message_editor_test_plan_RAIDPOD25-325 2020-05-20 17:56:17 +0800 9 weeks ago Ada Cheng
origin/Auto_message_editor_test_plan_RAIDPOD25-329 2020-06-01 16:49:19 +0800 7 weeks ago Ada Cheng
origin/Auto_message_editor_test_plan_RAIDPOD25-344 2020-05-20 18:05:36 +0800 9 weeks ago Ada Cheng
origin/Auto_message_editor_test_plan_RAIDPOD25-345 2020-05-20 18:33:11 +0800 9 weeks ago Ada Cheng
origin/Auto_message_editor_test_plan_RAIDPOD25-347 2020-05-20 18:22:44 +0800 9 weeks ago Ada Cheng
origin/Auto_message_editor_test_plan_RAIDPOD25-348 2020-05-20 18:28:34 +0800 9 weeks ago Ada Cheng
origin/Auto_message_editor_test_plan_RAIDPOD25-349 2020-06-01 10:10:00 +0800 7 weeks ago Ada Cheng
origin/Auto_message_editor_test_plan_RAIDPOD25-474 2020-06-01 09:10:27 +0800 7 weeks ago Ada Cheng
origin/Auto_message_editor_test_plan_RAIDPOD25-502 2020-06-03 17:29:23 +0800 7 weeks ago czhang28
origin/Auto_message_editor_test_plan_RAIDPOD25-504 2020-06-08 09:44:18 +0800 6 weeks ago Ada Cheng
origin/Auto_message_editor_test_plan_RAIDPOD25-529 2020-06-17 09:07:45 +0800 5 weeks ago Ada Cheng
origin/Auto_message_editor_test_plan_Sprint8.2 2020-05-15 13:25:40 +0800 10 weeks ago Jim Yuanjun Liu
origin/Auto_scripts_creation_and_execution_of_menu_select_&_return_value_RAIDPOD25-344 2020-05-25 14:28:01 +0800 8 weeks ago JJin5
origin/DEV_Add_Parameters_To_Mixin-RAIDPOD25-366 2020-06-16 17:34:49 +0800 5 weeks ago Jim Yuanjun Liu
origin/DEV_Another_button_position_will_changed_when_long_press_one_button 2020-06-12 17:12:31 +0800 6 weeks ago czhang28
origin/DEV_Code_Review_and_Refinement-RAIDPOD25-360 2020-06-03 14:56:15 +0800 7 weeks ago Eurus Yanan Liu
origin/DEV_Code_review_and_refinement_for_message_editor_RAIDPOD25-526 2020-06-15 17:08:26 +0800 5 weeks ago Jim Yuanjun Liu
origin/DEV_Focused_state_layout_support_RAIDPOD25-502 2020-06-09 13:56:23 +0800 6 weeks ago czhang28
origin/DEV_Link_Menu_Code_review_and_refinement_for_developer_RAIDPOD25-458 2020-06-08 13:56:00 +0800 6 weeks ago Eurus Yanan Liu
origin/DEV_Link_button_can_be_configured_to_show_hide_RAIDPOD25-342 2020-05-06 10:06:53 +0800 3 months ago ELiu8
origin/DEV_Menu-Keyboard_support_RAIDPOD25-348 2020-05-25 15:50:08 +0800 8 weeks ago czhang28
origin/DEV_Menu-Select_an_item_can_load_the_input_content_and_display_RAIDPOD25-345 2020-05-20 11:00:07 +0800 9 weeks ago ELiu8
origin/DEV_Menu_Display_all_items_getting_from_API_RAIDPOD25-343 2020-05-14 19:38:59 +0800 10 weeks ago Jim Yuanjun Liu
origin/DEV_Menu_Localization_support_RAIDPOD25-347 2020-05-20 17:27:19 +0800 9 weeks ago DDing1
origin/DEV_Menu_Select_an_item_can_return_its_value_to_input_RAIDPOD25-344 2020-05-25 15:50:08 +0800 8 weeks ago czhang28
origin/DEV_Menu_display_with_fontSize_and_position_RAIDPOD25-341 2020-05-07 10:23:42 +0800 3 months ago JJin5
origin/DEV_Message_Editor 2020-07-01 14:54:45 +0800 3 weeks ago Jim Yuanjun Liu
origin/DEV_Message_Editor_Sync_From_MR_DEV 2020-06-29 17:06:30 +0800 3 weeks ago Jim Yuanjun Liu
origin/DEV_Message_Editor_Test_Page_Integration_RAIDPOD25-327 2020-05-15 15:47:05 +0800 10 weeks ago Jim Yuanjun Liu
origin/DEV_Message_Editor_layout_support_RAIDPOD25-349 2020-06-23 16:37:27 +0800 4 weeks ago JJin5
origin/DEV_Message_Editor_test_page 2020-05-06 17:13:33 +0800 3 months ago ELiu8
origin/DEV_New_test_page_for_link_menu_RAIDPOD25-470 2020-06-09 14:07:05 +0800 6 weeks ago DDing1
origin/DEV_POC_ASCII_Editor_dynamic_form_RAIDPOD25-375 2020-06-23 17:13:10 +0800 4 weeks ago jwang53
origin/DEV_Remove_nextTab_input_in_message_input_testpage 2020-06-17 13:07:51 +0800 5 weeks ago czhang28
origin/DEV_Remove_shiftTab_input_in_message_input_testpage 2020-06-15 19:36:20 +0800 5 weeks ago Jim Yuanjun Liu
origin/DEV_Spike_Test_page_and_example_page_refinement_for_contribution-RAIDPOD25-505 2020-06-08 15:41:24 +0800 6 weeks ago Jim Yuanjun Liu
origin/DEV_Test_page_review_and_refinement_for_link-menu-RAIDPOD25-527 2020-06-17 10:11:48 +0800 5 weeks ago DDing1
origin/DEV_Test_page_review_and_refinement_for_message_editor_RAIDPOD25-528 2020-06-17 09:49:51 +0800 5 weeks ago Kenneth Shun Liang
origin/DEV_input-Display_default_place_holder_RAIDPOD25-326 2020-05-11 09:28:38 +0800 2 months ago czhang28
origin/DEV_input-Keyboard_support_RAIDPOD25-329 2020-06-03 17:29:23 +0800 7 weeks ago czhang28
origin/DEV_input_Configure_min_max_row_of_input_RAIDPOD25-324 2020-05-26 17:31:32 +0800 8 weeks ago Jim Yuanjun Liu
origin/DEV_message_editor_input_parameter_validation_RAIDPOD25-473 2020-06-02 15:08:05 +0800 7 weeks ago Jim Yuanjun Liu
origin/DEV_placeholder_bug_in_aggrid_RAIDPOD25-532 2020-06-24 15:38:41 +0800 4 weeks ago unknown
origin/DEV_set_float_label_for_grid_in_testing_page 2020-06-09 14:44:26 +0800 6 weeks ago Jim Yuanjun Liu
origin/Message_Editor_API_md_refinement_RAIDPOD25-530 2020-06-23 17:13:10 +0800 4 weeks ago jwang53
origin/Message_Editor_MD_Refine_615 2020-06-15 15:46:43 +0800 5 weeks ago jwang53
origin/PO_and_helper_refinement_for_test_page-RAIDPOD25-531 2020-06-15 13:30:13 +0800 5 weeks ago DDing1
origin/RAIDPOD25-530_API_and_md_document_refinement_0615 2020-06-16 15:44:21 +0800 5 weeks ago jwang53
origin/master 2020-04-27 20:39:45 -0500 3 months ago Carlos Aiello

如果想看指定人的并按照时间排序,按照下面命令操作:

for branch in `git branch -r --merged origin/DEV_Message_Editor | grep -v HEAD`; do echo $branch `git show --format="%ci %cr %an" $branch | head -n 1`;done | sort -r | grep 'Jim Yuanjun Liu'

按时间倒序排列(sort -r),最后过滤出作者是 Jim Yuanjun Liu 的分支。结果如下:

origin/DEV_Spike_Test_page_and_example_page_refinement_for_contribution-RAIDPOD25-505 2020-06-08 15:41:24 +0800 6 weeks ago Jim Yuanjun Liu
origin/DEV_set_float_label_for_grid_in_testing_page 2020-06-09 14:44:26 +0800 6 weeks ago Jim Yuanjun Liu
origin/DEV_Remove_shiftTab_input_in_message_input_testpage 2020-06-15 19:36:20 +0800 5 weeks ago Jim Yuanjun Liu
origin/DEV_Message_Editor_Test_Page_Integration_RAIDPOD25-327 2020-05-15 15:47:05 +0800 10 weeks ago Jim Yuanjun Liu
origin/DEV_Message_Editor_Sync_From_MR_DEV 2020-06-29 17:06:30 +0800 3 weeks ago Jim Yuanjun Liu
origin/DEV_message_editor_input_parameter_validation_RAIDPOD25-473 2020-06-02 15:08:05 +0800 7 weeks ago Jim Yuanjun Liu
origin/DEV_Message_Editor 2020-07-01 14:54:45 +0800 3 weeks ago Jim Yuanjun Liu
origin/DEV_Menu_Display_all_items_getting_from_API_RAIDPOD25-343 2020-05-14 19:38:59 +0800 10 weeks ago Jim Yuanjun Liu
origin/DEV_input_Configure_min_max_row_of_input_RAIDPOD25-324 2020-05-26 17:31:32 +0800 8 weeks ago Jim Yuanjun Liu
origin/DEV_Code_review_and_refinement_for_message_editor_RAIDPOD25-526 2020-06-15 17:08:26 +0800 5 weeks ago Jim Yuanjun Liu
origin/DEV_Add_Parameters_To_Mixin-RAIDPOD25-366 2020-06-16 17:34:49 +0800 5 weeks ago Jim Yuanjun Liu
origin/Auto_message_editor_test_plan_Sprint8.2 2020-05-15 13:25:40 +0800 10 weeks ago Jim Yuanjun Liu
origin/AUTO_input_Configure_min_max_row_of_input_RAIDPOD25-324 2020-05-26 16:03:53 +0800 8 weeks ago Jim Yuanjun Liu
origin/Auto_for_329_349_351_505_stories 2020-06-09 14:21:51 +0800 6 weeks ago Jim Yuanjun Liu
origin/AUTO_Add_Overflow_state_RAIDPOD25-529 2020-06-12 17:28:51 +0800 6 weeks ago Jim Yuanjun Liu

接着,我们就可以逐条删除冗余分支了,敲命令如下:

git push origin –-delete AUTO_Add_Default_and_Fault_states_RAIDPOD25-529

最后删除完远程分支,别忘了再同步下本地分支:

git fetch -p

随着MR删除source分支

在Merge按钮旁边,会有个Delete source branch的 checkbox,如果确认Merge之后,分支不会在用到,则可勾选上。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dOg3MEWo-1615816369806)(C:\Users\EQi3\Documents\image-20200721093611342.png)]

恢复被删除的分支

  1. 使用git log -g 找回之前提交的commit
commit 4c9f0c89c4a66e15e078e6aad8aabf0d8640daee
Reflog: HEAD@{14} (Elon Xiang Qi <ElonXiang.Qi@rockwellautomation.com>)
Reflog message: commit: finsih save as temp
Author: Elon Xiang Qi <ElonXiang.Qi@rockwellautomation.com>
Date:   Wed Jul 1 10:00:18 2020 +0800

    finsih save as temp

  1. 使用git branch recover_branch[新分支] commit_id命令用这个commit创建一个分支

    git branch POC_Demo_Branch 4c9f0c89c4a66e15e078e6aad8aabf0d8640daee

  2. 切换到新建的分支去检查文件是否都存在

彩蛋

git shortlog -sn 去代码仓库敲一下这个命令看看,会得到个commit 次数排名呦。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值