git常用命令速查
-
-
- [查看配置信息:git config ---list](#查看配置信息:git config —list)
- [查看 git 命令的具体用法](#查看 git 命令的具体用法)
- [克隆远程仓库:git clone url](#克隆远程仓库:git clone url)
- [在已存在的目录上初始化仓库:git init](#在已存在的目录上初始化仓库:git init)
- [查看仓库中文件状态:git status](#查看仓库中文件状态:git status)
- [跟踪新文件:git add](#跟踪新文件:git add)
- [暂存已修改的文件:git add](#暂存已修改的文件:git add)
- [忽略文件 .gitignore](#忽略文件 .gitignore)
- [查看已暂存文件和未暂存文件之间修改的变化:git diff](#查看已暂存文件和未暂存文件之间修改的变化:git diff)
- [提交更新:git commit](#提交更新:git commit)
- [移除文件: git rm](#移除文件: git rm)
- [移动文件:git mv soure destination](#移动文件:git mv soure destination)
- [查看提交历史:git log](#查看提交历史:git log)
- [版本穿梭:git reset ---hard <版本号>](#版本穿梭:git reset —hard <版本号>)
- [查看分支:git branch -v](#查看分支:git branch -v)
- [创建一个新的分支:git branch <分支名>](#创建一个新的分支:git branch <分支名>)
-
查看配置信息:git config ---list
git config --list
查看 git 命令的具体用法
git help <verb>
、git <verb> --help
、man git-<verb>
,这三种命令是等价的,其中 <verb>
指 git 的命令,输入这三种命令,会弹出查询命令的详细手册;
若只是想在命名行中查询该命令的可选项,可以使用命令 git <verb> -h
克隆远程仓库:git clone url
git clone <url>
例如:git clonehttps://github.com/libgit2/libgit2
如果想在克隆远程仓库的时候,自定义本地仓库的名字,可以通过额外的参数指定新的目录名;
git clone <url> newDirname
例如:git clonehttps://github.com/libgit2/libgit2mylibgit
在已存在的目录上初始化仓库:git init
如果你想对一个项目目录进行版本控制,切换到该目录下,执行 git init
命令,该文件夹下就会创建一个名为 .git
的子目录,然后就可以对该项目目录下的文件进行版本控制;
查看仓库中文件状态:git status
git status
命令可以查看该项目目录下各文件的状态;
该命令后面可以接文件名或目录名,表示查看该文件或该目录的状态;
跟踪新文件:git add
在一个进行版本控制的项目目录下创建了一个新文件时,是没有对该文件进行跟踪的,需要使用命令 git add filename
对文件进行跟踪,若filename为目录名,则会递归地跟踪该目录下的所有文件;
新文件执行了 git add filename
命令后,状态为暂存状态;
暂存已修改的文件:git add
把已跟踪的文件放到暂存区,git add filename
忽略文件 .gitignore
有些文件是不需要纳入Git的管理,例如日志文件,存放数据的文件夹等,我们不希望这些文件总是出现在未跟踪的文件列表中,一般的做法是创建一个名为 .gitignore
的文件,在该文件中列出要忽略的文件的模式。
markdown
# 忽略所有的 .a 文件
*.a
# 但跟踪所有的 lib.a,即便你在前面忽略了 .a 文件
!lib.a
# 只忽略当前目录下的 TODO 文件,而不忽略 subdir/TODO
/TODO
# 忽略任何目录下名为 build 的文件夹
build/
# 忽略 doc/notes.txt,但不忽略 doc/server/arch.txt
doc/*.txt
# 忽略 doc/ 目录及其所有子目录下的 .pdf 文件
doc/**/*.pdf
查看已暂存文件和未暂存文件之间修改的变化:git diff
命令 git diff
能通过文件补丁的格式更加具体地显示哪些行发生了改变;
git diff
命令比较的是工作目录中当前文件和暂存区域快照之间的差异,也就是修改之后还没有暂存起来的变化内容;注意:git diff
命令本身只显示尚未暂存的改动,而不是自上次提交以来所做的所有改动;
若要对比已暂存文件与最后一次提交的文件差异,可以使用命令 git diff --staged
提交更新:git commit
命令 git commit
将暂存区的文件提交,输入命令后会启动编辑器,如下所示:
在编辑器中的第一行是个空行,用来输入提交说明;输入提交说明后,保存并退出编辑器,就提交成功了,如下图所示:
也可以在 commit 命令后添加 -m 选项,在-m 选项后面输入提交信息,将提交信息与命令放在同一行,注意:输入信息要用引号引起来 ,如下图所示:
命令git commit -a
将使暂存区的文件一并提交,即使暂存区的文件还没有使用命令 git add
将暂存区的文件提交到工作区;
移除文件: git rm
命令 git rm
将使文件不在被跟踪,并且Git将删除这个文件,即从磁盘中删除该文件,然后使用命令 git commit
,删除操作将不可撤回;
使用命令 git rm --cached <file>
使文件不再被Git跟踪,但依然保存在磁盘上;也即将文件移出暂存区,但不会将文件从磁盘中删除。
移动文件:git mv soure destination
将文件或目录移动到指定目录下,或将文件重命名;
查看提交历史:git log
命令 git log
查看项目的提交历史(详细信息),更多选项使用命令 git help log
查看;
git reflog
查看版本信息
版本穿梭:git reset ---hard <版本号>
git reset --hard <version_id>
回到某个历史版本
查看分支:git branch -v
创建一个新的分支:git branch <分支名>
创建一个名为 hot-fix
的新分支,git branch hot-fix