Git常用命令以及概念
# Git 团队协作实践(简化Git Flow开发流程)
# Git 存储区域概念
通俗说法
- 工作区:就是当前所在的文件目录
- 暂存区/缓存区:使用git add xx,就可以将xx添加到暂存区
- 本地仓库:使用git commit xx,就可以将xx添加本地仓库
- 远程仓库:使用git push 就可以将本地仓库推送到远程仓库
# Git 中一些常用选项解释
-d --delete:删除
-D --delete --force的快捷键
-f --force:强制
-m --move:移动或重命名
-M --move --force的快捷键
-r --remote:远程
-a --all:所有
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
# git 创建仓库
git init
当前目录创建git仓库
git init newrepo
指定目录生成git仓库
1
2
3
4
5
2
3
4
5
# git 基本操作
git init
当前目录创建git仓库
git add .
添加当前目录下所有文件到
git status
查看仓库当前的状态,显示有变更的文件
git commit -m '第一次版本提交'
将暂存区内容添加到本地仓库中
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# git tag 命令相关
git tag -a v1.0
创建带注解的V1.0的标签(需要再次填写信息)
git tag -a <tagname> -m "标签信息"
创建带注解的V1.0的标签(git tag -a 的简化版,直接提交标签信息)
git tag
查看所有标签
git push origin <tagname>
推送本地标签到远程库
git tag -d tagname
删除本地tag
git push origin :refs/tags/tagname
删除远程tag
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# git merge 命令相关
git merge合并分支到主分支主要步奏
# 先切换到主分支(或即将被覆盖的分支)
git checkout master
# 将某个指定分支覆盖到当前分支
git merge <branch-name>
# 把本地分支更新到远程分支
git push origin <branch-name>
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# git branch 命令相关
创建分支并推送到远程仓库
git branch branchname
创建分支
git branch (-m | -M) <oldbranch> <newbranch>
更新分支名称,-m -M 二选一
git push origin branchname
推送到远程分支
git branch -r
查看远程分支
git branch
查看本地分支
git branch -a
查看本地和远程所有分支
git branch -d <branchname>
删除本地分支,其中<branchname>为本地分支名
git branch -d -r <branchname>
删除远程分支,其中<branchname>为本地分支名
报错 error: remote-tracking branch 'V2.0.2' not found
git push origin --delete <branchname>
第二种方式删除远程分支,其中<branchname>为本地分支名
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
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
# git config 命令相关
git config --list --show-origin
查看所有的配置以及它们所在的文件
git config --list
检查配置信息,列出所有 Git 当时能找到的配置
git config --global --unset user.name
删除全局配置项user.name
it config --global --edit
编辑配置文件修改user.email
git config --global user.name "定义名称"
添加user.name
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
# git reset 命令相关(本地和远程)
本地版本回退
git reset --soft HEAD^
回退到上一个版本,保留工作目录,并把重置 HEAD 所带来的新的差异放进暂存区(通俗理解就是:你误提交的新增文件不会删除变为修改状态,你修改的文件内容还会存在且变为修改状态,你之前误提交的日志会删除)
git reset --mixed HEAD^
回退到上一个版本,mixed 为默认,用于重置暂存区的文件与上一次的提交(commit)保持一致,工作区文件内容保持不变(通俗理解就是:你误提交的新增的文件不会删除且变为未追踪状态,你修改的文件内容还会存在并且该文件变为修改状态,你之前误提交的日志会删除)
git reset --hard HEAD^
回退到上一个版本,撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交:(通俗理解就是:你误提交的新增的文件会删除,你修改的文件内容回抹除,你之前误提交的日志会删除)
远程版本回退
git reset --hard HEAD~1
本地回退到上一个版本
git push --force
推送当前分支当前版本到远程仓库分支(指定相关分支推送也可以:git push origin master -f,推送本地master分支到远程master)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
上次更新: 2024/03/22, 09:55:29