Git常用命令速查

生成 ssh key

ssh-keygen -t rsa
ssh-keygen -t rsa -C <注册的gitlab邮箱>

GitLab / GitHub 多账户下设置 ssh keys

git commit 规范

feat 新功能
fix 修复问题
docs 修改文档
style 修改代码格式,不影响代码逻辑
refactor 重构代码,理论上不影响现有功能
perf 提升性能
test 修改测试用例
chore 修改工具相关(包括但不限于文档、代码生成等)
deps 升级依赖

git clone 指定分支

 git clone -b <branch> <URL>

git diff

git diff                    # 比较工作区和暂存区
git diff --staged           # 比较暂存区和上次提交

取消文件跟踪

git rm --cached <file>

git stash

在分支之间传递更改

git stash list
git stash push -m <message>
git stash pop
git stash apply <id>

git merge/rebase

merge 把目标branch 上的所有commit 都应用到当前branch,并自动生成一条merge commit
如果merge冲突,需要手动解决冲突再重新commit,或者放弃 merge

git merge <branch>         # merge branch分支
git merge --abort          # 放弃merge

rebase 把当前 branch 上的 commit,以指定的目标 commit 为base,依次重新提交一次
在 rebase 之后,需要切回 master 再merge 一下,把 master 移到最新的 commit

git rebase -i <master>          # 以master为base,依次提交commit(提交前后commit不一样)
git merge <branch>

git pull

在 push 代码时如果远程分支有新的 commit 未同步到本地,会 push 失败,这时需要先 git pull 拉取远端最新代码,再进行 push 操作
不使用 --rebase 进行 pull 时,最终 push 的结果会多出一条 merge commit,这是在执行 git pull 自动生成的

git pull origin master                   # git pull = git fetch + git merge
git pull --rebase origin master          # git pull --rebase = git fetch + git rebase

git pull --rebase的正确使用

git push

把 branch 上传到远端仓库
git push <远程仓库名> <本地分支名>:<远程分支名>

git push origin HEAD:refs/for/master
# origin:远程仓库名
# HEAD:指向正在工作的本地分支的指针
# refs/for:提交代码到远程仓库后需要经过code review才能进行merge

git branch

git branch -vv
# 查看本地分支和远程分支的关联关系

git checkout

git checkout -b 本地分支名 origin/远程分支名
# 创建跟踪远程分支的本地分支

git mv

git判断rename还是delete/add是根据文件内容的相似度决定的,相似度超过50%就是rename,低于50%就是delete/add

git log --follow xxx
# 查看文件rename前后的git记录

cherry-pick

将指定的提交应用于其它分支

git blame

查看代码改动记录

git reset

git reset HEAD             # 将暂存区和HEAD的提交保持一致
git reset HEAD --hard      # 将工作区,暂存区和HEAD的提交保持一致

git patch

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容