背景
有一天,甲方小明惊讶地问项目经理老张:“老张,你是怎么做到每天这么多高质量代码输出的?是不是偷偷喝仙露蟠桃了?”老张嘿嘿一笑,回答说:“真相其实很简单,我有个秘密武器——叫做‘一键全员化身术’。”
原来,老张背后隐藏着一支精锐的编程小分队,每人各怀绝技,都在同一个战场的不同阵地上挥洒汗水。有趣的是,他们提交代码时,都用了老张的用户名,仿佛武侠小说中的“千手观音”,看似一人之力,实则团队协作。
每当夜幕降临,老张便摇身一变,成了代码世界的“大魔术师”。他利用Git的神奇力量,将团队成员们分散在各处的代码碎片逐一拼接,融合成一幅幅绚丽多彩的程序画卷,然后把这些“集体智慧结晶”打包,冠以自己的名义提交给甲方。
甲方小明听罢,瞪大眼睛感慨道:“我说呢,还以为你是AI机器人呢,原来背后藏着一整个开发天团!这就叫‘明修栈道,暗度陈仓’,佩服佩服!”
于是乎,老张和他的团队凭借这一独特而高效的代码提交策略,成功打造出了一个看似“孤胆英雄”,实则群策群力的项目神话。
老张的具体实施步骤
一、老张团队成员项目信息配置
- 甲方仓库地址:
https://gitee.com/jiafang/git-demo-test.git
. - 老张团队仓库地址:
https://e.coding.net/laozhang/git-demo-test.git
. - 报给甲方我的信息: 用户名:
laozhang
, 邮箱:laozhang@qq.com
1.克隆甲方的项目
$ git clone https://gitee.com/xxx/git-demo-test.git
2.在项目 git-demo-test
配置老张的本地信息
# 在本项目中配置git信息,用户名和邮箱
$ git config --local user.name "laozhang"
$ git config --local user.email "laozhang@qq.com"
3.老张为项目添加团队的仓库地址
# 老张添加团队仓库地址
$ 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.老张团队成员本地信息配置
# 所有的成员配置,需要克隆代码,且配置成老张的信息,不能用自己的信息,防止甲方知道
$ 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.团队成员正常开发流程
# 1.修改或新增文件后,添加到暂存区
$ git add .
# 2.编辑备注信息
$ git commit -m "描述信息"
# 3.更新团队仓库远程代码
$ git pull origin master
# 4.如果有冲突解决冲突
...
# 5.把本地代码推送到团队远程仓库中
$ git push origin master
2.团队成员合并分支流程
# 1.合并feature分支
$ git merge --no-ff feature
# 2.更新当前分支
$ git pull origin master
# 3.如果有冲突解决冲突
...
# 4.把本地代码推送到团队远程仓库中
$ git push origin master
三、老张的操作流程
1.如果自己有开发代码,则提交暂存区后更新代码
$ git add .
$ git commit -m "老张修改的"
$ git pull laozhang master
2.老张看看提交日志,是不是都是自己的信息提交
$ 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
参数,这样可以去除自动生成的信息。下面有两种操作方式:
# 1.这参数的意思就是在合并代码之前,先执行变基操作,成功后在进行真正的merge操作。(如果有冲突需要手动解决)
$ git pull laozhang origin --rebase
# 2.或者修改配置,告诉git在每次pull前先进行rebase操作
$ git config --global pull.rebase true
3.老张整理好团队的代码,提交到甲方的仓库
# 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
,感谢您的关注~
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。