git 常用操作

git 常用操作

设置proxy (解决科学网络问题)

shell
1
2
3
4
5
6
git config --global http.proxy <PROXY_URL>
git config --global https.proxy <PROXY_URL>

# 例如
git config --global http.proxy http://127.0.0.1:7890
git config --global https.proxy http://127.0.0.1:7890

clone 代码

shell
1
git clone <REPO_URL>

指定分支

shell
1
git clone -b <BRANCH_NAME> <REPO_URL>

子模块

shell
1
2
3
4
5
6
7
8
9
# 一次性全部clone
git clone --recurse-submodules <REPO_URL>

# 先clone主仓库,再clone子模块
git clone <REPO_URL>
git submodule update --init --recursive

# 确认子模块是否初始化
git submodule

分支操作

shell
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 查看本地分支
git branch

# 查看远程分支
git branch -r

# 查看本地+远程分支
git branch -a

# 创建分支
git branch <BRANCH_NAME>

# 切换分支
git checkout <BRANCH_NAME>

# 删除ufenzhi
git branch -d <BRANCH_NAME>

# 合并分支
git checkout <TARGET_BRANCH>
git merge <SOURCE_BRANCH>

# 示例 将 dev 分支合并到 main 中
git checkout main
git merge dev

# 推送到远程分支
git push origin <BRANCH_NAME>

Tag

shell
1
2
3
4
5
6
7
8
# 查看tag
git tag

# 查看tab信息
git show tag <TAG_NAME>

# 推送
git push origin --tags

commit

shell
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
# 添加指定文件
git add <FILE_1> <FILE_2>

# 添加所有修改的文件
git add .


# 查看修改
git status

# 提交本地
git commit -m "<COMMIT_MESSAGE>"

# 推送远程
git push origin <BRANCH_NAME>

commit 规范

commit message 格式如下

shell
1
2
3
4
5
6
<TYPE>(<SCOPE>): <SUBJECT>
<BODY>
<FOOTER>

# 示例
feat: add xxxx module
  • TYPE 类型标签,表示提交的类型
    • feat - feature,新功能
    • fix - 修复
    • docs - 文档变更
    • style - 代码样式调整
    • refactor - 代码重构
    • test - 新增测试
    • chore - 构建过程或工具变动
    • revert - 撤销

commit中使用emoji

效果如下:

shell
1
2
3
git commit -m ":<EMOJI_CODE>:"
# 例如
git commit -m ":tdata: message"

常用的emoji

emojiemoji code说明
🎉:tada:开始一个新仓库
⚡️:zap:提高性能。
🐛:bug:修复bug
:sparkles:引入新功能
📝:memo:增加或更新文档
🚀:rocket:部署
:white_check_mark:增加、更新或通过test
⬆️:arrow_up:更新依赖
:heavy_minus_sign:删除依赖
📌:pushpin:固定依赖到某个版本
♻️:recycle:重构代码
🔧:wrench:添加或更新配置文件

更多 emojicode 可参照 gitmoji

在命令行中显示emoji

可使用emojify

例如:

shell
1
git log --oneline

使用 emojify

shell
1
git log --oneline | emojify

查询

shell
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
# 查看当前状态
git status

# 查看差异
git diff

# 撤销修改
git checkout -- <FILE>

# 撤销暂存区的文件
git reset HEAD <FILE>

# 撤销暂存区的所有文件
git reset HEAD .

# 恢复之前提交的版本
git revert <COMMIT>

参考