一直习惯于用SourceTree等可视化的代码管理工具,总是get不到代码管理的精髓,看来git命令还是要用起来哇
常用Git命令汇总
-
查看提交记录
git log
-
代码管理
- 暂存
git add .
- 提交代码
git commit -m "注释"
- 遴选某次提交
git cherrypick eaddd92
- 暂存
-
分支
- 查看分支
- 查看所有本地分支
git branch
- 查看所有远程分支
git branch -r
- 查看所有远程分支和本地分支
git branch -a
- 查看所有本地分支
- 切换分支
- 切换到指定分支,并更新工作区
git checkout [branchName]
- 切换到指定分支,并更新工作区
- 新建分支
- 新建分支,仍停留在当前分支
git branch [newBranchName]
- 新建分支,并切换到该分支
git checkout -b [newBranchName]
- 从指定的提交新建分支
git branch [newBranchName] [commitId]
- 从指定的标签新建分支
git checkout -b [branchName] [tagName]
- 新建分支,并关联到指定的远程分支
git branch --track [newBranchName] [remoteBranchName]
- 新建分支,仍停留在当前分支
- 关联分支
- 将本地分支关联到指定的远程分支
git branch --set-upstream [branchName] [remoteBranchName]
- 将本地分支关联到指定的远程分支
- 合并分支
- 合并指定分支到当前分支
git merge [branchName]
- 合并指定提交到当前分支
git cherry-pick [commitId]
- 合并指定分支到当前分支
- 重命名分支
- 重命名本地分支(尚未推送到远程)
git branch -m <:oldName> <:newName>
- 重命名远程分支
step1
重命名本地分支git branch -m <:oldName> <:newName>
step2
删除远程分支git push --delete origin <:oldName>
step3
将本地重命名分支推送到远程仓库git push origin <:newName>
step4
本地重命名分支关联到远程分支Sgit branch --set-upstream-to origin/<:newName>
- 重命名本地分支(尚未推送到远程)
- 删除分支
- 删除本地分支
git branch --delete [branchName]
git branch -d [branchName]
- 强制删除本地分支
git branch -D [branchName]
- 删除远程分支
git origin --delete [branchName]
- 删除本地分支
- 推送分支
- 推送到远程分支
git push origin fix_bug
- 强制推送到远程分支(⚠️远程分支的代码会被本地分支的覆盖,慎用⚠️)
git push -f origin fix_bug
- 推送到远程分支
- 取回所有分支的更新
git fetch
- 查看分支
-
标签
- 查看标签
- 查看所有标签
git tag
- 查看指定标签的信息
git show [tagName]
- 查看所有标签
- 新建标签
- 在当前提交新建标签
git tag [tagName]
- 在指定提交新建标签
git tag [tagContent] [commitId]
git tag -a [tagName] -m [commitId]
- 在当前提交新建标签
- 提交指定标签
git push [remote] [tagName]
git push origin [tagName]
- 提交所有标签
git push origin --tags
git push [remote] --tags
- 查看标签
-
忽略
- 多人开发时,提交了项目无关的本机文件,例如
.DS_Store
step1
删除项目文件夹下的所有.DS_Store
文件find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch
step2
提交更新git add . git commit -m 'fix: Delete all .DS_Store'
- 多人开发时,提交了项目无关的本机文件,例如
Commitizen提交规范
提交格式1
<type>(<scope>): <subject>
提交格式2
<type类型>(<scope 可选作用域>): <subject 描述>
<BLANK LINE>
<body 可选的正文>
<BLANK LINE>
<footer 可选的脚注>
其中,footer里面可以标记链接,body可以写明自己的想法。示例:
feat: 添加资产管理模块
增加资产列表、搜索。
需求No.181 http://xxx.xxx.com/181。