Git 命令汇总

常用Git 命令

1
2
3
4
5
6
7
git mv currentName newName //文件重命名 并直接add到暂存区(可以保留提交记录 git mv src/current src/new)
git log --oneline //单行显示历史提交
git log -n2  //只查看最近两次提交信息
git reflog  //可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)
git reset --soft HEAD^  //撤销上一次commit 退回到add状态
git reset --hard HEAD^  //撤销上一次commit 删除所有代码(危险操作, git relog可买后悔药)
git commit --amend  //修改commit注释

分支操作(创建、切换、查看、删除)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
git branch xxx  //基于当前分支创建新分支
git branch xxx  //基于当前分支创建新分支
git checkout xxx  //切换分支
git checkout -b xxx  //创建并切换到xxx分支
git push --set-upstream origin xxx  //首次将本地分支推送到远程
git branch -d xxx  //删除本地分支
git push origin --delete xxx  //删除远程分支
git branch  //查看本地分支
git branch -a  //查看所有分支(-r 查看所有远程分支)
git branch -v  //查看本地分支及对应版本信息
git branch -va //查看所有分支及对应版本信息(最好先git branch -a 有一次我直接git branch -va没给我显示全) 
git remote -vv //查看当前远程仓库信息
git branch -vv //查看本地分支与远程分支的对应关系信息
git branch --set-upstream-to=origin/dev  //设置当前分支的上游分支(跟踪)
git branch --unset-upstream master //取消对master的跟踪

分支重命名

1
2
3
git branch -m old_local_branch_name new_local_branch_name //重命名本地分支
git push origin :old_local_branch_name //删除远程分支
git push origin new_local_branch_name //推送新命名的本地分支

其他操作

1
2
3
4
5
git stash //入栈 开发中需要临时切分支
git stash pop //出栈
git cherry-pick commitId
git log --graph --decorate --oneline --simplify-by-decoration --all //查看graph
git log --author="caohanwen" //查看某个人的提交

开发时操作(AHS)

创建分支
  1. git clone xxxx 拉取对应仓库代码
  2. git pull 每次切分支前记得先同步一下远端代码
  3. git checkout -b b2b-xxx 在master分支上,创建对应tb号分支
  4. git add . 暂存文件
  5. git commit -m "feat: 需求名称“ 如果代码不通过,特殊情况下,可以 gc --no-verify 无验证提交
  6. git push --set-upstream origin b2b-xxx 完成需求开发后将该分支提交到远端仓库
发布UAT
  1. git checkout uat 切换到uat分支(uat为集成测试分支)
  2. git pull 拉取uat最新代码,如有冲突,不要处理,直接reset到最新的提交
  3. git merge b2b-xxx 合并需求到uat(如有冲突需解决)
  4. 和后端确认接口也发布到uat,再通知测试再做集成测试
发布生产环境
  1. git rebase -i commitID 将commitID(不包括)之后的所有提交合并
  2. git push -f 查看git日志,确认无误后强推分支到远程
  3. git rebase master 同步远程master
  4. 到GitLab 提 MergeRequest 并指定 leader 将b2b-xxx分支合并到master 发布线上
  5. 在收到发布成功邮件后,通知测试进行线上验证

commit message 前缀

1
2
3
4
5
6
7
8
9
feat: 新功能
fix: 修复bug
test: 增加/修改测试用例
chore: 修改工具相关
docs: 修改文档
perf: 提升性能
reflactor: 重构, 不影响当前逻辑
style: 修改代码格式
deps: 升级依赖