常用命令
帮助类:
git --help
:显示git命令帮助信息
git help -a
:显示所有命令
git help -g
:显示一些概念说明
git help <command>
:显示指定命令的详细信息,在windows下会打开浏览器页面
配置命令
git config --list
或者 git config -l
列出所有的配置选项以及配置值,例如user.name,user.email等
git config --global user.name someone
配置全局用户名称,如果你是连接到多个git仓库平台的话,例如GitHub和GitLab,但是用户名和密码不同的话,那可以使用 git config --local user.name
来设置当前仓库的用户名
git config --edit
可以编辑当前仓库的一些配置,按Ctrl+X退出
查看类
git remote -v
: 查看远程仓库url
git log
: 查看提交日志
git show <commit id>
: 查看该次提交的详细信息
git status
:查看当前仓库状态,有无变更
git diff <filename>
: 文件修改前后对比,跟仓库版本相比有哪些不同,可以查看所有变更,也可以查看单个或者指定多个文件,进入查看界面后如果要退出可以按q退出,或者按h查看使用帮助。
开发类
git remote
:常用的命令有git remote add
- Adds a remote named <name> for the repository at <url>. ,例如:git remote add abc https://github.com/nzdxwl/demo.git
,之后可以使用git push -u abc master
,git fetch abc
来更新abc名称下的master分支和获取对应名称下的所有分支; 还有git remote remove <name>
来删除指定命名空间,git remote rename <old name> <new name>
来重命名;
git add
: 添加所有未提交文件,可以git add .
或git add -A
,或只添加指定文件
git commit
: 提交变更,例如 git commit -a -m "description about commitment"
git push
: 推送提交到远程仓库,例如 git push origin master
,git push -u origin master
,设置当前分支为远程仓库跟踪的分支, 删除远程分支:git push origin -d <branch_name>
git pull
: 拉取当前分支的最新更新
git branch <branch_name>
:创建仓库分支,如果只执行git branch
,则是相当于git branch -l
git branch -m <old_branch_name> <new_branch_name>
:修改仓库分支名称,-M是强制修改
git branch --list
或者 git branch -l
:列出本地所有分支,git branch -a
列出本地远程所有分支,git branch -r
列出远程所有分支;
git branch -d <branch_name>
: 删除指定分支 -D大写D是强制删除,--delete是-d的完全版本
git checkout <branch_name>
: 检出(并切换到)指定分支
git checkout -b <branch_name>
: 这个命令则等同于检出项目并创建新的分支
git checkout -b <branch_name> <commit_id>
: 这个命令则等同于检出指定提交id时的项目版本并创建新的分支
git checkout .
: 当你对一些文件做了修改后,但未执行git add添加到版本库时,想还原到未修改前的状态,可以使用这个命令还原所有变更。
git clean -df
: 当你添加了一些新的文件,但未执行git add添加到版本库时,想移除这些新加文件时可以使用这个命令。
git fetch
:Download objects and refs from another repository,拉取其他仓库的最新信息到本地,不会影响当前项目。
git reset
: 可以将当前项目头部重置到指定状态,比如我想重置到某次提交时的状态,后面提交的内容不显示,那么可以执行git reset --hard <commit id>
,那么项目会重置到该次提交时状态,这时你可以创建新的分支来从这个点修改;如果我想重置到某次提交时的状态,但是后面所有提交的文件都保留,则将--hard参数修改为--soft即可; 如果你只是想看看然后又恢复到最新的头部状态,可以执行git pull <name> <branch>
来恢复,或者记住最新的头部提交ID的前几位的话,可以执行git reset --hard <commit id>
来恢复到最新的头部。
当git操作命令涉及commit id时,可以只使用id的前几位即可,git会自动判断和查找相应的id
git revert
: git reset只是恢复到某个点,git revert则可以撤销指定的某次或多次提交。例如 git revert -n HEAD~2..HEAD
,这个命令是撤销倒数第1和第2次提交的内容,-n 参数指示撤销后不用自动提交,如果不加 -n参数,那么撤销后会自动提交; git revert HEAD~5 HEAD~8
,这个命令则是撤销倒数第5和倒数第8次提交的内容并且自动提交撤销操作,上面的HEAD也可以使用分支名称代替,HEAD~5这种写法也可以替换成具体的commit id。
其他
当使用git remote add命令为当前项目创建其他命名空间并push到远程仓库后,checkout到该命名空间的master分支时有以下提示,意思是处于“detached HEAD”状态时,你可以做一些实验性修改并提交,如果不为当前修改创建新的分支,那么所有的改变在你checkout另外分支时会被丢弃。一个仓库中的分支名称除了master外,其他是唯一的,命名空间不同也不能创建同名分支。
'detached HEAD' state
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
帮助
>git --help
usage: git [--version] [--help] [-C <path>] [-c name=value]
[--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
[-p | --paginate | --no-pager] [--no-replace-objects] [--bare]
[--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
<command> [<args>]
These are common Git commands used in various situations:
start a working area (see also: git help tutorial)
clone
Clone a repository into a new directory
init
Create an empty Git repository or reinitialize an existing one
work on the current change (see also: git help everyday)
add
Add file contents to the index
mv
Move or rename a file, a directory, or a symlink
reset
Reset current HEAD to the specified state
rm
Remove files from the working tree and from the index
examine the history and state (see also: git help revisions)
bisect
Use binary search to find the commit that introduced a bug
grep
Print lines matching a pattern
log
Show commit logs
show
Show various types of objects
status
Show the working tree status
grow, mark and tweak your common history
branch
List, create, or delete branches
checkout
Switch branches or restore working tree files
commit
Record changes to the repository
diff
Show changes between commits, commit and working tree, etc
merge
Join two or more development histories together
rebase
Reapply commits on top of another base tip
tag
Create, list, delete or verify a tag object signed with GPG
collaborate (see also: git help workflows)
fetch
Download objects and refs from another repository
pull
Fetch from and integrate with another repository or a local branch
push
Update remote refs along with associated objects
'git help -a' and 'git help -g' list available subcommands and some
concept guides. See 'git help <command>' or 'git help <concept>'
to read about a specific subcommand or concept.