文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

git 协同工作,怎样重命名、删除分支和查找分支的创建者呢?

2024-12-01 13:25

关注

git 的主要优势之一是能够将工作“分叉”到不同的分支。

当你与其他人协同工作的时候,分支尤其重要。git的分支机制是允许多人同时处理同一个项目,同一个文件。用户可以引入不同的功能部分,然后修改,并合并到主分支中。分支的创建多是由于某种目的或原因,比如添加新的功能,修复某个问题等。所以有时候分支会被称为主题分支。

一旦你使用了git,那么分支将不可避免的会用到,了解如何管理分支也是非常有帮助的。本文分享使用git分支中常见的一些任务。

重命名分支

如果你不小心将分支名称写错了,或者将分支中的内容已经合并到了主分支,并且该分支想继续使用,但用作改其他的bug,或者其他的任务,那么就需要对分支重新命名。

要重命名分支,可以执行如下步骤。

1)使用如下命令重命名本地分支:

$ git branch -m  

如果重命名的是当前分支,那么当前分支名称(也就是old_branch_name)可以省略。当然,上述命令只是重命名分支的副本,也就是存在于你计算机中的本地分支。如果该分支存在于远程仓库,那么还需要将分支推送过去,需要执行下一步;

2)将重命名后的分支,推送至远程仓库(相当于在远程仓库新建了一个分支):

$ git push origin 

3)删掉远程仓库中的旧分支

$ git push origin -d -f 

删除分支

在删除分支之前,一定要确保分支中的内容,已经被合并到主分支中(或者确保内容已经做好了备份)。

删除本地分支

与重命名分支一样,删除本地分支其实只是将分支的副本删除掉了,如果该分支已经被推送到远程仓库,那么远程仓库中的相应分支是不会被删掉的,其他人还是可以使用的。

1)首先第一步需要检出主分支(因为你不能删除还在工作中的当前分支):

$ git checkout 

2)列出所有分支(包括本地分支和远程分支):

$ git branch -a

3)删掉本地分支:

$ git branch -d 

如果要删除主分支以外的所有其他本地分支,可以使用如下命令:

$ git branch | grep -v main | xargs git branch -d

删除远程分支

删除远程分支,也只是会删除远程仓库上存在的分支副本。如果删除远程分支后(本地分支没有删),后悔了,又不想删掉了,那么还可以将本地分支重新推送到远程仓库。

1)与删除本地分支一样,首先检出主分支:

$ git checkout 

2)列出所有分支(包括本地分支和远程分支):

$ git branch -a

3)删除远程分支:

$ git push origin -d 

查询远程分支的创建者(作者)

在协同工作的git仓库中,可能会有一些分支,由于某些原因,创建后就不用了。那么作为仓库管理员,就可能需要通知那些创建者,让其删掉不用的分支。那么怎样才能知道分支是谁创建的呢?可以参照如下步骤。

1)还是检出主分支:

$ git checkout 

2)删除不存在的远程分支的分支引用:

$ git remote prune origin

3)列出仓库中所有远程分支的作者,使用 --format 选项以及其他参数来对结果进行过滤,输出所需要的信息。其他参数比如 %(authorname)和 %(refname) 分别表示作者和分支名称。

$ git for-each-ref --sort=authordate --format='%(authorname) %(refname)' refs/remotes

以下是上述查询命令输出结果的一个例子:

tux  refs/remotes/origin/dev
agil refs/remotes/origin/main

此外,还可以添加更多的格式,以提高可读性:

$ git for-each-ref --sort=authordate \
--format='%(color:cyan)%(authordate:format:%m/%d/%Y %I:%M %p)%(align:25,left)%(color:yellow) %(authorname)%(end)%(color:reset)%(refname:strip=3)' \
refs/remotes

结果如下所示:

01/16/2019 03:18 PM tux      dev
05/15/2022 10:35 PM agil main

还可以使用 grep 来获取指定分支的作者:

$ git for-each-ref --sort=authordate \
--format='%(authorname) %(refname)' \
refs/remotes | grep

以上就是本次分享全部内容。

来源:TIAP内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯