Git操作大法

102 阅读3分钟

git分支命名规范:

开发分支:feature-[模块名]-[子模块名/标签]-[姓名首字母小写]
修复TD类分支 fix-[缺陷编号/模块名]-[姓名首字母小写]

git提交规范:1 - 5 - 11 - 4 - 编码阶段 - 9 - 10 - 12 - 11 - 14

git 合并commit规范:commit(所有更改) -> git log -> git rebase -i [commitID(不包含此版本)] -> 最后一次提交的pick改为squash -> 修改commit日志 -> git log(查看结果) -> git push -f

术语解析:feat:feature缩写,新需求开发; fix: bug修复;

查询自己在某段时间的代码行: git log [分支] --author=[作者] --since=2023-03-01 --until=2023-04-17 --pretty=tformat: --numstat . ":(exclude)mock" | awk '{ add += 1;subs+=1; subs += 2; loc += 11 - 2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }'

分支管理

  1. 列举本地分支 git branch
  2. 列举远程分支 git branch -r
  3. 列举本地远程分支 git branch -a
  4. 新建分支 git checkout -b [newBranch] newBranch: [feature/fix]-[模块名]-[子模块名]-[姓名首字母小写]
  5. 切换分支 git checkout [branch-name]
  6. 删除本地分支 git branch -D [branch-name]
  7. 删除远程分支 git branch -dr [remote/branch]
  8. 推送未关联的新分支到远程 git push --set-upstream origin [newBranch]
  9. 设置本地分支追踪远程分支 git push --set-upstream origin [newBranch]
  10. 重命名本地分支名称 git branch -m [oldName] [newName]
  11. cherry-pick操作 git cherry-pick
  12. 查询当前分支的父级分支 git reflog show
  13. 合并分支片段 git rebase --onto <startBranch/startcommitId> <endBranch/endcommitId> 把otherBranch中从startcommitId到endcommitId的提交片段合并到当分支

代码管理

  1. 查询文件状态 git status
  2. 提交代码 git commit -m [message] message:[feat/fix/perf]:[uedc][缺陷编号][版本号][模块名][描述],如:feat:[uedc][2021081300224]【AF8.0.50_新架构】【ui】【邮件附件过滤】代码优化
  3. 暂存代码 git add .
  4. 更新代码 git pull
  5. 推送代码 git push
  6. 还原代码

 (1) git checkout -- [file_name / *] // 未进行git add [file_name]

 (2) git reset HEAD . // 修改的文件存入了暂存区

 (3) git reset --hard HEAD^ // 回退到上一次提交 git reset --hard [commitid] // 回退到任意一次提交

  • 未进行git add [file_name] 操作:(1)
  • 修改的文件存入了暂存区 操作:(2) && (1)
  • 已经commit之后 操作:(3)
  1. 修改commit日志 git commit --amend
  2. 拉取代码到本地 git clone git@...
  3. 删除未跟踪的文件 git clean -f
  4. 删除未跟踪的文件及目录 git clean -fd
  5. 从本地某个分支拉取代码并merge此分支 git pull
  6. 从远程某个分支拉取代码并merge此分支 git pull origin
  7. 从本地某个分支merge到当前分支 git merge
  8. 从远程某个分支merge到当前分支 git merge origin
  9. 查看某次提交的文件改动列表:git show --stat
  10. 查看某次提交的文件改动详情:git show

fork仓库操作

关联父级仓库

git clone <fork仓库地址> clone fork仓库到本地
git remote add upstream <要关联的仓库地址> upstream可以是其他别名,关联父级仓库

同步fork仓库最新的改动

下方案例前提条件是当前分支是main分支,所以,案例中也是把父级仓库的main分支merge到当前分支

git fetch upstream   拉取父级仓库的代码,拉取父级所有分支最新的改动 
git merge upstream/main   把父级仓库main分支merge代码到本地当前分支 
git push origin main 或 git push   推送最新的改动到自己的远程fork仓库

git push时默认仓库默认是自己的origin,如果没有更改默认仓库,此命令等同于git push origin [当前分支]

提交改动并提PR到父级仓库

  1. 提交自己的代码并将开发分支推送到到fork仓库后
  2. 直接在平台上选择新建PR
  3. 源分支选择自己的fork仓库开发分支,目标分支选择父级仓库目标分支
  4. 编辑PR描述,点击提交即可