Skip to content

git常用命令

程序员必备技能之 Git

常用命令

拉取代码

sh
git clone xxx.git

创建分支

sh
git branch dev
# or
git checkout -b dev
# or
git switch -c dev

切换本地分支

sh
git checkout dev
# or
git switch dev

切换分支并关联远程分支

sh
git checkout -b dev origin/dev
# or
git checkout --track origin/dev

查看本地所有分支

sh
git branch

查看远程所有分支

sh
git branch -r

删除本地分支

sh
git branch -d dev

删除远程分支

sh
git push origin -d dev

将代码从工作区添加暂存区

sh
git add .

查看尚未暂存的更新

sh
git diff

添加提交信息(commit 注释写错,执行 git commit --amend 此时会进入默认 vim 编辑器,修改注释后保存)

sh
git commit -m 'xxxx'

推送代码到远程分支

sh
git push origin dev

# 强制推送(常在 git rebase 或 git reset 后使用)
git push -f origin dev

拉取远程分支代码

sh
git pull origin dev

合并分支

sh
git merge dev

查看 git 状态

sh
git status

查看提交历史

sh
git log

查看可引用的历史版本记录

sh
git reflog

把本地未 push 的分叉提交历史整理成直线

sh
git rebase origin/dev

回到 rebase 执行之前的状态

sh
git rebase --abort

回退版本

sh
# 回退指定 commit_id 版本
git reset --hard commit_id

# 回退上一个版本
git reset --soft HEAD^
# or
git reset --soft HEAD~1

撤销代码

sh
git revert commit_id

修改分支名

sh
# 第一步
git branch -m oldBranchName newBranchName

# 第二步
git push origin :oldBranchName

# 第三步
git push --set-upstream origin newBranchName

查看 git 配置

sh
# 查看全局配置
git config --global --list

# 查看用户名
git config --global user.name

添加用户名

sh
git config --global --add user.name newName

删除用户名

sh
git config --global --unset user.name

修改用户名

sh
git config --global user.name newName

配置 Git 用户名和邮箱

sh
# 用户名
git config --global user.name "Your Name"

# 邮箱
git config --global user.email "email@example.com"

统计代码行数

sh
git ls-files | xargs wc -l

文件或文件夹重命名

GitWindowsmacOS 的默认文件系统中对文件大小写修改是不敏感的。可能你会先删除文件并提交,然后再新建文件再提交,这样做很麻烦,下面的 git mv 就简化了繁琐的操作
比如文件 filename.ts 或文件夹 jsutils,它们的相对路径分别是 src/filename.tssrc/jsutils

sh
# 将 filename.ts 文件重命名为 fileName.ts,分下面两步
# 第一步(注意下面的 name.ts 与 filename.ts 是不同的,如果你把 name.ts 改为 fileName.ts 是不行的,因为上面讲了仅大小写不同是不行的)
git mv src/filename.ts src/name.ts
# 第二步
git mv src/name.ts src/fileName.ts

# 将 jsutils 文件夹重命名为 jsUtils,分下面两步
# 第一步
git mv src/jsutils src/utils
# 第二步
git mv src/utils src/jsUtils

提交规范

相关参考

feat: 增加新功能
fix: 修复问题/BUG
style: 代码风格相关无影响运行结果的
perf: 优化/性能提升
refactor: 重构
revert: 撤销修改
test: 测试相关
docs: 文档/注释
chore: 依赖更新/脚手架配置修改等
workflow: 工作流改进
ci: 持续集成
types: 类型定义文件更改
wip: 开发中

CodeReview 常用缩写

PR(Pull Request)拉取请求,给其他项目提交代码
LGTM(Looks Good To Me)代码已经过 review,可以合并
SGTM(Sounds Good To Me)和上面那句意思差不多,也是已经通过了 review 的意思
WIP(Work In Progress)如果有个改动很大的 PR,可以在写了一部分的情况下先提交,但需在标题写上 WIP,以告诉项目维护者这个功能还未完成,方便维护者提前 review 部分提交的代码
PTAL(Please Take A Look)提示别人来看一下
TBR(To Be Reviewed)提示维护者进行 review
TL;DR(Too Long; Didn't Read)太长懒得看
TBD(To Be Done(or Defined/Discussed/Decided/Determined)) 一般表示还没搞定

简单易懂的 Git视频教程推荐

赣ICP备2023003243号