git命令进阶教程,助力大团队项目开发效率提升

前言:git是目前各大公司都在使用的版本控制工具。对于团队人数较多的大项目,开发效率是一个令人头痛的问题,如能充分挖掘git工具潜能,能对团队的开发效率与交付正确率有较大提升。

关键问题:在单人编码中,常规的git pull 与git push可能已经够用。但在大团队大项目的背景下,可能合作的人数超过5人,10人甚至20人时,就会不可避免的引起较多合作上带来的问题。如多人同时修改一处代码,代码版本合并,不同功能同时上线,测试环境如何控制等。这些问题轻则降低研发效率,重则可能导致代码冲突,引发线上生产问题。

解决思路:作为成熟的版本管理工具,git 有较多高阶操作供我们选择使用。与此同时,如同武林秘籍一样,越高级的武功秘法其危害性就越大,所以要更熟悉相关功能与用法才能够做到安全使用。

使用到的git 命令汇总:

git stash 

git stash pop

git stash list

git reset --hard xxxxx

git reset --soft xxxx

git log

git status

git pull --rebase

git commit --amend 

git branch

git checkout 分支名

git fetch

git cherry pick

情景例子:

下面由各项开发中的各项例子,连成一个项目开发流程串,进行举例讲解。

1.项目进行开发,组内共有10+工程师,基于master版本拉取5条分支,分为不同功能开发

此时,先git fetch,拉取分支更新。

再使用git checkout +分支,切换至具体开发分支

最后使用git pull ,拉取最新更新

2.每条分支上的功能点需要2-3人写作开发完成,可能会出现部分confiig文件两人共同修改的冲突。此时,同学A写完了自己的功能点a,需要上传至远程。

此时,同学A需要先使用git status,查看自己所修改的文件,是否有其他文件混入。

其次,使用git log查看提交记录,如果自己本地提交了多次commit,但其实是一次提交,可利用

git reset --soft 远程版本 

恢复所有文件内容,并使用git commit在本地暂存

暂存完成后,可以使用git pull --rebase拉取远程最新更改。--rebase作用为消除拉取时可能出现的merge commit记录,并且按照时间顺序,调整同学A与其他同学的commit记录

3.同学A在分支A1开发功能a期间,需要修改分支B1的功能b中的一个小参数,但是此时代码只完成了一半。

同学A可选择git stash ,暂存所有未完成的代码。暂存完成后,可使用git stash list查看

此时,切换到功能b的分支B1,进行修改并提交。

完成后,切换回分支A1,使用git stash pop,还原回未完成的代码

4.同学A在分支A1开发功能a,代码已经完成了,并在本地提交commit,标签为 功能a,实现xxx。

但在代码评审中,被高级工程师指出了一些修改问题,进行了代码的修改。

此时同学A可以使用git commit --amend,追加这部分代码优化至上次commit,避免commit过多导致代码分布混乱的问题

5.项目开发进行了一个月,此时,因为某些重大原因,部分功能需要马上提前上线,且这些功能分布在分支A1,B1,C1,D1,E1中。但根据一线开发工程师反馈,这些分支上还有不支持上线的功能,且代码都混在一起,人工复制粘贴的耗时很大,后续测试上线时间也非常紧张,询问高级工程师如何解决?

高级工程师眉头一皱,在电脑屏幕前不断搜索着什么。10分钟,20分钟过去了

突然间高工神色缓和了很多,在键盘上打出 cherry pick两个关键词,给下面的一线工程师淡淡的说,你们试试这个吧。

总结:

作为团队架构师,需要关注项目全流程的实现与方向把控。git作为成熟的版本管理工具,还有很多神奇的命令,这里不进行一一讲述,但对于经典的问题解决所用到的命令,需要掌握其用法及可能带来的问题,如git 记录被抹除,代码丢失等。对于团队内初级工程师来说,git操作不敢,不会,需要着重培训提升。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值