一站式管理:揭示团队集体智慧凝聚成一人的 Git 代码提交实战

背景

有一天,甲方小明惊讶地问项目经理老张:"老张,你是怎么做到每天这么多高质量代码输出的?是不是偷偷喝仙露蟠桃了?"老张嘿嘿一笑,回答说:"真相其实很简单,我有个秘密武器------叫做'一键全员化身术'。"

原来,老张背后隐藏着一支精锐的编程小分队,每人各怀绝技,都在同一个战场的不同阵地上挥洒汗水。有趣的是,他们提交代码时,都用了老张的用户名,仿佛武侠小说中的"千手观音",看似一人之力,实则团队协作。

每当夜幕降临,老张便摇身一变,成了代码世界的"大魔术师"。他利用Git的神奇力量,将团队成员们分散在各处的代码碎片逐一拼接,融合成一幅幅绚丽多彩的程序画卷,然后把这些"集体智慧结晶"打包,冠以自己的名义提交给甲方。

甲方小明听罢,瞪大眼睛感慨道:"我说呢,还以为你是AI机器人呢,原来背后藏着一整个开发天团!这就叫'明修栈道,暗度陈仓',佩服佩服!"

于是乎,老张和他的团队凭借这一独特而高效的代码提交策略,成功打造出了一个看似"孤胆英雄",实则群策群力的项目神话。

老张的具体实施步骤

一、老张团队成员项目信息配置

  • 甲方仓库地址: https://gitee.com/jiafang/git-demo-test.git.

  • 老张团队仓库地址: https://e.coding.net/laozhang/git-demo-test.git.

  • 报给甲方我的信息: 用户名:laozhang, 邮箱: laozhang@qq.com

1.克隆甲方的项目

bash 复制代码
$ git clone https://gitee.com/xxx/git-demo-test.git

2.在项目 git-demo-test 配置老张的本地信息

bash 复制代码
# 在本项目中配置git信息,用户名和邮箱
$ git config --local user.name "laozhang"

$ git config --local user.email "laozhang@qq.com"

3.老张为项目添加团队的仓库地址

bash 复制代码
# 老张添加团队仓库地址
$ git remote add laozhang https://e.coding.net/laozhang/git-demo-test.git

# 查看项目配置的仓库信息
$ git remote -v

laozhang  https://e.coding.net/laozhang/gittest/git-test-demo.git (fetch)
laozhang  https://e.coding.net/laozhang/gittest/git-test-demo.git (push)
origin  https://gitee.com/jiafang/git-demo-test.git (fetch)
origin  https://gitee.com/jiafang/git-demo-test.git (push)

# 老张把甲方代码推送到团队仓库
$ git push laozhang master

4.老张团队成员本地信息配置

bash 复制代码
#  所有的成员配置,需要克隆代码,且配置成老张的信息,不能用自己的信息,防止甲方知道
$ git clone https://gitee.com/xxx/git-demo-test.git

# 在本项目中配置git信息,用户名和邮箱
$ git config --local user.name "laozhang"

$ git config --local user.email "laozhang@qq.com"

二、团队成员之间开发实战

1.团队成员正常开发流程

bash 复制代码
# 1.修改或新增文件后,添加到暂存区
$ git add .

# 2.编辑备注信息
$ git commit -m "描述信息"

# 3.更新团队仓库远程代码
$ git pull origin master

# 4.如果有冲突解决冲突
...

# 5.把本地代码推送到团队远程仓库中
$ git push origin master

2.团队成员合并分支流程

bash 复制代码
# 1.合并feature分支
$ git merge --no-ff feature

# 2.更新当前分支
$ git pull origin master

# 3.如果有冲突解决冲突
...

# 4.把本地代码推送到团队远程仓库中
$ git push origin master

三、老张的操作流程

1.如果自己有开发代码,则提交暂存区后更新代码
bash 复制代码
$ git add .
$ git commit -m "老张修改的"
$ git pull laozhang master
2.老张看看提交日志,是不是都是自己的信息提交
bash 复制代码
$ git log --graph --oneline
...
* | commit ccad9361b45f4d7866553a2d07f26033bbd012b6
|/  Author: laozhang <laozhang@qq.com>
|   Date:   Wed Mar 6 11:04:09 2024 +0800
|
|       使用说明5
|
*   commit 73f77c0c21b9afd62cc21d944ff1369592ced378
|\  Merge: a103687 c2ac404
| | Author: laozhang <laozhang@qq.com>
| | Date:   Wed Mar 6 10:56:12 2024 +0800
| |
| |     Merge branch 'master' of https://e.coding.net/laozhang/gittest/git-test-demo
| |
| * commit c2ac404c3b875a55414f5ad8c511b8ee08325192
| | Author: laozhang <laozhang@qq.com>
| | Date:   Wed Mar 6 10:55:29 2024 +0800
| |
| |     参与贡献4
| |
* | commit a1036870d6cd074ef77fe21775d94ba45a674848
|/  Author: laozhang <laozhang@qq.com>
|   Date:   Wed Mar 6 10:56:01 2024 +0800
|
|       使用说明4
|
* commit b6360efe78bae4e0b65a412b4a8f6740e10ecc5f
| Author: laozhang <laozhang@qq.com>
| Date:   Wed Mar 6 10:21:29 2024 +0800
|
|     增加安全教程4
|
...

老张看了提交信息,用户名和邮箱都是用的自己,但是提交记录出现了Merge branch 'master' of ...,这样可不行呀,如果把本地代码推送到甲方的仓库里,肯定会暴露提交信息,后果就不堪设想了...

老张经过一番操作把生成的Merge branch ...信息删除了,然后告诉团队的成员,再更新远程代码一定要加上 --rebase参数,这样可以去除自动生成的信息。下面有两种操作方式:

bash 复制代码
# 1.这参数的意思就是在合并代码之前,先执行变基操作,成功后在进行真正的merge操作。(如果有冲突需要手动解决)
$ git pull laozhang origin --rebase

# 2.或者修改配置,告诉git在每次pull前先进行rebase操作
$ git config --global pull.rebase true
3.老张整理好团队的代码,提交到甲方的仓库
bash 复制代码
# 1.更新甲方仓库的代码
$ git pull origin master --rebase

# 2.如果有冲突解决冲突

# 3.推送本地代码到甲方仓库和团队仓库
$ git push origin master
$ git push laozhang master

# 4.老张再次查看提交记录
$ git log --graph --oneline
* 2448004 (HEAD -> master, origin/master, origin/HEAD) 增加user1
* 91d3e84 增加user2
* 6224def 增加user3
* 1124266 参与贡献7
* 7122df2 使用说明7
* 5477cff 安装教程7
* eea2631 特技7
* 81e0fa6 安装教程6
* 3d0d280 参与贡献6
* e44c680 使用说明6
* d1503ad 参与贡献5
* ece36a5 安装教程5
* ccad936 使用说明5
* c2ac404 参与贡献4
* a103687 使用说明4
* b6360ef 增加安全教程4
...

总结

至此老张的所有操作已经结束,老张在面对甲方项目的过程中,采用了一种独特的Git提交策略,表面上营造出由我一人独立完成所有编码工作的假象,实质上则是通过高效团队协作的方式共同推进项目的进展。

喜欢的话帮忙点个赞 + 关注吧,将持续更新 Git 相关的文章,还可以关注我的公众号 梁三石FE ,感谢您的关注~

相关推荐
.生产的驴几秒前
SpringBoot 消息队列RabbitMQ 消息确认机制确保消息发送成功和失败 生产者确认
java·javascript·spring boot·后端·rabbitmq·负载均衡·java-rabbitmq
海里真的有鱼8 分钟前
Spring Boot 中整合 Kafka
后端
布瑞泽的童话14 分钟前
无需切换平台?TuneFree如何搜罗所有你爱的音乐
前端·vue.js·后端·开源
写bug写bug24 分钟前
6 种服务限流的实现方式
java·后端·微服务
白鹭凡26 分钟前
react 甘特图之旅
前端·react.js·甘特图
2401_8628867830 分钟前
蓝禾,汤臣倍健,三七互娱,得物,顺丰,快手,游卡,oppo,康冠科技,途游游戏,埃科光电25秋招内推
前端·c++·python·算法·游戏
离开地球表面_9934 分钟前
索引失效?查询结果不正确?原来都是隐式转换惹的祸
数据库·后端·mysql
Victor35637 分钟前
Oracle(138)如何监控数据库性能?
后端
书中自有妍如玉38 分钟前
layui时间选择器选择周 日月季度年
前端·javascript·layui