Git 常用命令与配置
# 仓库相关命令
# 检出 仓库
git clone [url]
# 查看远程仓库信息
git remote -v
# 设置远端跟踪分支,eg: git branch --set-upstream-to=origin/master master
git branch --set-upstream-to=<remote_name>/<branch> <branch>
# 添加远程仓库:
git remote add <name> <url>
# 删除远程仓库,eg: git remote remove origin
git remote remove <name>
# 修改远程仓库,eg: git remote set-url --push [name] [newUrl]
git remote set-url --push <name> <newUrl>
# 拉取远程仓库
git pull [remoteName] [localBranchName]
# 推送远程仓库
# eg: git push origin develop
# eg: git push origin dev:master (提交本地 dev 分支作为远端 master 分支)
git push [remoteName] [local:remote]
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
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
# 回滚相关命令
# 情况1:撤销已经 commit & push 的内容
# 1. 查看已提交的版本
git log
# 2. 回滚到指定版本
git reset --hard ${version}
# 3. 强制 push
git push -f
############################################
# 情况2:撤销已经 commit 但是未 push 的内容
# 以下命令中也可以使用 HEAD~1(等价于 HEAD^), HEAD~2,1 和 2 表示之前几个版本
# 撤销 commit 和 add,不会删除修改过的内容
git reset HEAD^
# 或者是
git reset --mixed HEAD^
# 撤销 commit,不撤销 add,不会删除修改的内容
git reset --soft HEAD^
# 撤销 commit 和 add,且删除修改过的内容
git reset --soft HEAD^
# 只想修改注释
git commit --amend
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
29
30
31
32
33
34
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
29
30
31
32
33
34
# 分支相关命令
# 列出远程跟踪及本地分支
git branch -av
# 创建本地分支
git branch [name]
# 切换分支
git checkout <name>
# 创建新分支并立即切换到新分支
git checkout -b [name]
# 删除已合并的分支
git branch -d [name]
# 强制删除分支
git branch -D [name]
# 合并 name 分支到当前分支
git merge [name]
# 创建远程分支(本地分支push到远程)
git push origin [name]
# 删除远程分支
git push origin -d [name]
# 查看追踪情况
git remote show origin
# 删除远端已经删除的分支
git remote prune origin
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
29
30
31
32
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
29
30
31
32
# tag相关命令
# 查看tag
# -l, --list 列出标签名称
# -n[<n>] 每个标签信息打印 <n> 行
# -d, --delete 删除标签
# -v, --verify 验证标签
git tag
# 创建 tag
git tag <name>
# 删除 tag
git tag -d [name]
# 查看远程版本:
git tag -r
# 创建远程版本(本地版本push到远程):
git push origin [name]
# 删除远程版本:
git push origin :refs/tags/[name]
# 从远端仓库拉取 tag
git pull origin --tags
# 推送 tag 到远程仓库
git push origin --tags
# 创建 tag 并添加注释
git tag -a [name] -m 'msg'
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
29
30
31
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
29
30
31
# 子模块(submodule)相关命令
# 递归 clone 项目,会把 submodule 也一起 clone
git clone git@github.com:jjz/pod-project.git --recursive
# 添加子模块,eg: git submodule add git submodule add git@github.com:tech-microworld/my-cloud-gateway.git src/gateway
git submodule add <url> <path>
# 初始化子模块
git submodule init
# 更新子模块
git submodule update
# 删除子模块
# 1)
git rm --cached [path]
# 2) 将子模块的相关配置节点删除掉
vi .gitmodules
# 3) 将子模块的相关配置节点删除掉
vi .git/config
# 4) 手动删除子模块目录
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# log
# 查看log,eg: git log --graph -2
git log [--graph] [-n]
1
2
2
# 忽略文件
# target
# bin
# *.db
vi .gitignore
1
2
3
4
2
3
4
# 配置
vim ~/.gitconfig
[user]
name = xxx
email = xxx@gmail.com
[http "https://github.com"]
proxy = socks5://192.168.3.9:1080
[http "https://gitlab.com"]
proxy = socks5://192.168.3.9:1080
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 设置代理
Last Updated: 2024/04/23, 01:30:37