0%

Git 常用命令整理

Git 常用命令整理

本文整理出我工作中常用的 Git 命令,不涉及 Git 工作原理与名词解释。


创建仓库

1
2
3
4
5
# 在当前目录创建 Git 仓库
$ git init .

# 在当前目录创建裸仓库(不包含工作区)
$ git init . --bare

分支操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 创建分支
$ git checkout -b new_breanch

# 删除分支
$ git branch -d branch_name

# 删除远程分支
$ git push -d origin branch_name

# 切换分支
$ git checkout branch_name

# 合并分支
$ git merge fix_branch

# 查看所有分支
$ git branch -a

# 查看当前分支
$ git branch

远程库操作

1
2
3
4
5
6
7
8
9
10
11
# 增加一个名为 origin 的远程库
$ git remote add origin url

# 删除一个名为 origin 的远程库
$ git remote rm origin

# 推送本地 master 分支更改到远程库
$ git push origin master

# 获取远程库的 master 分支更改,并合并到本地库
$ git pull origin master

文件操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 将名称为 file 的文件添加到暂存区 
$ git add file

# 删除文件且不再追踪此文件
$ git rm file

# 列出当前工作区更改情况,当加上 -s 参数时表示以简短形式显示工作区更改情况
$ git status [-s]

# 将工作区的文件或者目录提交到暂存区
$ git add file

# 将工作区中己发生更改的文件提交到暂存区,以便下次提交。需要注意的是,此命令对新建的文件不起作用
$ git add -u

# 提交暂存区更改到本地版本库,其中 Log Message 表示自定义的本次提交信息,用来描述本次提交的更改
$ git commit -m "Log message"

# 查看工作区与暂存区的差异
$ git diff

# 查看暂存区与最近一次提交的差异
$ git diff --cached

回滚操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 用暂存区文件覆盖工作区文件(从暂存区恢复文件)
$ git checkout -- file

# 用某次提交(此提交用 commitid 表示)覆盖整个工作区和暂存区
$ git checkout commitid

# 用某次提交(此提交用 commitid 表示)恢复指定的文件到工作区和暂存区,该操作会同时将"file"文件覆盖到暂存区和工作区(从版本库恢复文件)
$ git checkout commitid file

# 用某次提交(此提交用 commitid 表示)恢复暂存区(暂时存区内容不变)
# 关于mode选项的说明:mode 选项共有三个值:
# --soft 暂存区和工作区都不会发生更改
# --mixed(默认选项) 暂存区被覆盖,但工作区不发生变化
# --hard 缓冲区和工作区都被 commitid 指定的提交覆盖掉
# 例如 git reset commitid 实际上相当于: git reset --mixed commitid
$ git reset [mode] commitid

# 用某次提交(此提交用 commitid 表示)恢复暂存区的指定文件(工作区内容不变)
# 需要注意的是,请对比上一条命令,此种形式的 reset 命令属于“文件层面”的操作,不同于提交层面的reset操作。在此种形式的操作中, mode 参数将不会生效。
$ git reset commitid file

查看日志

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 查看本地提交日志
$ git log

# 查看本地提交日志,同时输出每次提交的更改
$ git log -p

# 查看两个提交之间的区别
$ git diff commitid1 commitid2

# 查看某个文件在两个提交之间的差异
$ git diff commitid1 commitid2 file

# 查看某个提交与上一次提交之间的差异
$ git diff commitid

标签操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 添加标签
$ git tag -a tag_name tag_comment

# 删除标签
$ git tag -d tag_name

# 删除远程库标签
$ git push -d origin tag_name

# 取回远程库标签
$ git fetch --tags

# 列出标签
$ git tag -l

# 列出标签,并以创建时间倒序排序
$ git tag -l --sort=-taggerdate

# 推送本地 tag 到远程库
$ git push origin tag_name

结束,想到再补充!