设置用户名/邮箱
git config --global user.name "GShan"
git config --global user.email "9495@qq.com"
不加--global==为局部设置
分支设置
分支名 | 分支用途 | 数量 | 来源 |
---|---|---|---|
master(简称M) | 生产 | 唯一 | C |
test(简称T) | 测试 | 唯一 | M/C |
C12345(简称C) | 开发 | 数个 | M |
Bug123(简称B) | 处理生产bug | 数个 | M |
release(未使用) | 预发布(可用rebase) | 唯一 | M/C |
开发流程
1.git checkout -b C------ 在"M"切换C分T支
2.git merge C ------ 在"T"提测开发分支
3.若有测试bug,在bug所在C分支上修改,然后执行2,禁止直接修改
4.git merge C ------ 开发完毕后,"M"分支执行
5.处理生产bug按234步处理
6.开发依赖某C1分支,如果跟领导确认C1分支先上线的话,可以merge C1代码
(一般没有这种情况,极其低,一般都是一个开发完,开发另一个)
7.第6条,若不确定上线时间,在自己分支上修改代码,与C1相关的代码每次要单独一个commit,
如有需要可单独拉出一个合并过C1的代码,在非80端口上进行"测试"
8.上线后删除对应的C/B分支
注意事项
#0.个人分支开发:按"开发-commit-pull-push"顺序进行,不要打乱顺序
#1.切换分支前,先提交(commit)代码,然后拉(pull)代码,可以不推送(push)
#2.切换分支后,全部放弃工作区未提交(commit)的代码
#3.切换分支后,先拉(pull)代码,再进行其他操作
#4.保证merge的两个分支都是最新代码
#5.目前禁用rebase,rebase后需要强推代码,可能导致其他同事代码无法找回
#6.回滚代码后,需确认同事间代码保持一致
#7.master禁止回滚代码,或者3个同事一起商量怎么回滚
#8.为防止未解决冲突就提交代码,禁止使用add .
解决冲突
1.不要盲目使用"使用本地"和"使用传入"功能,冲突超过半屏,自己要解析代码逻辑,然后再进行合并操作
2.自己没修改的用传入的
3.自己修改的,看看冲突处代码逻辑,如果该处是自己更改的,但是老旧代码用自己的,如果有别人加入的逻辑,需要自己整合
4.以上操作还是弄不懂的,找同事一起看
在git merge C 情况下
可以直接删除符号"<",符号"=",符号">"去修改
<<<<<<<<
你写的(本地的)
========
别人写的(传入的)
>>>>>>>>
不常用代码
git代码 | 用途 |
---|---|
git reset --hard HEAD^ | 回退到上个版本 |
git reset --hard HEAD~n | 回退到前n次提交之前 |
git reset --hard commit_id | 退到/进到 指定的commit |
git push origin <branchname> --force | 强推到远程 |
git revert commit_id | 修改指定的commit,修改后需要重新commit |
git branch -d <branchname> | 删除本地分支 |
git branch -d -r <branchname> | 删除远程分支,删除后还需推送到服务器 |
git branch -m <oldbranch> <newbranch> | 重命名本地分支 |
git branch -d <branchname> | 删除本地分支 |
git fetch origin | 取回origin 主机提交信息 |
-f | --force:强制 |
-d | --delete:删除 |
-D | --delete --force的快捷键 |
-m | --move:移动或重命名 |
-M | --move --force的快捷键 |
-r | --remote:远程 |
-a | --all:所有 |
注释规范
Add ( 新加入的需求 )
Fix ( 修复 bug )
Remove ( 移除功能 )
Changed ( 完成的任务 )
Refactor ( 重构代码Refactor )
Updated ( 完成的任务,或者由于第三方模块变化而做的变化 )
例:C12346 Fix 单词拼错
例:C12345 Changed 提测
例:C12345 Add 上线/开工
例:C12345 Updated 引入L96325 xxx功能
...
网友评论