本Git命令指南共分为三个部分:基础命令,中级命令和高级Git命令。
基本Git命令
在这个部分中,我们要学习的是一些非常基础的Git命令。这些基本的Git命令是学习其他高级命令的基础。
下面请看这9个基本的Git命令。
- git config
git config命令非常有用。尤其是在你第一次使用Git或刚安装新的Git时。此命令可设置身份——Name和Email地址。并且每次提交时会使用此信息。
用法
$ git config --global user.name "Your name"
$ git config --global user.email "Your email"
- git version
顾名思义,它会检查你使用的是哪个版本的Git。目前,截至编写本指南时,Git for Windows的最新版本是2.31.1。它发布于2021年3月27日。
用法
- git init
这可能是你在Git中启动新项目所使用的第一个命令。此命令将创建一个空白的新存储库,然后你可以将源代码存储在此存储库中。
用法
或者,你也可以在git init命令中使用存储库名称。
$ git init <your repository name>
- git clone
git clone命令将使用现有的存储库进行复制。git init和git clone之间有一个主要区别。
在你需要在现有的存储库上进行复制时,使用git clone。git clone命令首先在内部使用git init命令,然后检出所有内容。
用法
git clone <your project URL>
- git add
git add命令会把所有新的代码文件或修改后的文件添加到存储库中。此命令提供了添加文件和文件夹的不同选项。
下面是git add命令的用法。
将单个文件添加到暂存区
此选项会将所有修改过的文件和新文件添加到暂存区
- git commit
这个Git命令是必不可少的。如果不能合理利用此命令,则可能会降低项目质量。
简而言之,git commit会将更改添加到本地存储库。
用法
$ git commit -m "your useful commit message"
- git status
使用此Git命令可以方便地查看有多少文件需要得到关注。你可以随时运行此命令。
此命令可以用来在git add和git commit之间查看状态。
用法
- git branch
大多数时候,你的Git存储库中总会有多个分支。我们可以使用git branch命令有效地管理分支。Git分支有许多不同的选项和开关。
为简单起见,在这里我将重点介绍如何创建和删除Git分支。
用法
(i)列出所有分支:
(ii)创建新的分支:
$ git branch <branch_name>
(iii)删除分支:
$ git branch -d <branch_name>
- git checkout
此Git命令用于在分支之间进行切换。这是功能强大的git命令之一,堪称万能的瑞士军刀。
以下是切换到另一个分支的语法。
用法
$ git checkout <branch_name>
此外,你也可以创建和检出到分支,用法如下
$ git checkout -b <your_new_branch_name>
中级Git命令
掌握了基本的Git命令之后,我们就该学习中级Git命令了。如果你需要与团队合作,与他人共享代码,那么这些Git命令会非常有用。另外,还有一些类似git log命令,这些命令可帮助查看以前的提交历史。
- git remote
git remote命令就像边界,如果你需要与外界连接,则必须使用git remote命令。此命令会将你的本地存储库连接到远程。
用法
$ git remote add <shortname> <url>
举例
$ git remote add origin https://dev.azure.com/aCompiler/_git/DemoProject
- git push
(借助git remote命令)与远程存储库连接之后,就需要将更改推送到存储库。
用法
$ git push -u <short_name> <your_branch_name>
举例
$ git push -u origin feature_branch
- git push --set-upstream
在使用git push之前,我们应该先设置好origin和upstream。下面是设置upstream的命令。
用法
$ git push --set-upstream <short_name> <branch_name>
举例
$ git push --set-upstream origin feature_branch
- git fetch
当需要下载其他团队成员的更改时,就得使用git fetch。
此命令会下载有关提交、引用等的所有信息,因此你可以在将这些更改应用于本地存储库之前对其进行检查。
用法
- git pull
git pull命令下载内容(而不是元数据),并立即用最新的内容更新本地存储库。
用法
- git stash
此git命令会临时存储已修改的文件。你可以使用以下Git命令处理stash工作。
用法
可以使用以下命令查看所有stash
如果你需要应用stash到分支,那就使用apply
- git log
在git log的帮助下,你可以看到所有之前的提交,并且最近的提交出现在最前面。
用法
默认情况下,它将显示当前已检出分支的所有提交,但是你可以强制通过所有选项来查看所有分支的所有提交。
- git shortlog
git shortlog命令会显示来自git log命令的摘要。如果你只对简短的摘要感兴趣,那么此命令就非常有用了。
这个命令有助于查看谁处理了什么,因为它对作者及其提交进行了分组。

用法
- git show
与git log相比,此命令将显示有关特定提交的详细信息。
用法
$ git show <your_commit_hash>
- git rm
有时你需要从代码库中删除文件,在这种情况下,可以使用git rm命令。
它可以从索引和工作目录中删除跟踪的文件。
用法
$ git rm <your_file_name>
- git merge
git merge可帮助将来自两个分支的更改集成到单个分支中。
用法
$ git merge <branch_name>
此命令会将<branch_name>合并到当前你选择的分支中。
高级Git命令
现在是时候再上一个层次了。在这个部分中,我们要学习的是高级的Git命令。这些命令就需要花时间去练习了。
但是一旦掌握了这些命令的基础知识,使用起来不要太轻松哦。
- git rebase
git rebase类似于git merge命令。它把两个分支集成到一个分支中,但有一个不一样的地方:git rebase命令将会重写提交记录。
当你有多个私有分支合并到单个分支时,应使用git rebase命令。它将使得提交历史成为线性的。
用法
- git bisect
git bisect命令可帮助查找糟糕的提交。
用法
i)启动git bisect
ii)让git bisect知道什么是好的提交
iii)让git bisect知道什么是糟糕的提交
通过git bisect,只要几分钟你就可以缩小问题代码的范围。
- git cherry-pick
git cherry-pick是一个蛮有用的命令,允许你从任意分支中选择任意提交并将其应用于其他任意分支。
用法
$ git cherry-pick <commit-hash>
git cherry-pick不会修改存储库的历史记录;相反,它会添加到历史记录。
- git archive
git archive命令会把多个文件合并为单个文件。就好像zip实用程序一样,所以你可以提取存档文件以获取单个文件。
用法
$ git archive --format zip HEAD > archive-HEAD.zip
它将创建当前修订的zip存档。
- git pull --rebase
在大多数情况下,当你使用git pull时,你需要重新设置基准(并且不进行合并)。
此时,你就可以使用此选项。
用法
这将帮助保持干净的历史记录。另外,还可以避免多次合并。
- git blame
如果你需要逐行检查任意文件的内容,则需要使用git blame命令。它可以帮助确定是谁对文件进行了更改。
用法
$ git blame <your_file_name>
- git tag
在Git中,标签很有用,你可以使用它们来管理发布。你可以将git tag视为不会改变的分支。尤其是要公开发布的时候,则更为重要了。
用法
- git verify-commit
git verify-commit命令将检查gpg签名。GPG,GNU Privacy Guard,是sign文件中使用的工具,包含签名。
用法
$ git verify-commit <commit>
- git verify-tag
可以以同样的方式确认标签。
用法
- git diff
大多数情况下,在提交或推送之前,你需要比较两个git文件或分支。用这个命令就方便多了。
用法
i)将工作目录与本地存储库进行比较:
$ git diff HEAD <filename>
ii)比较两个分支:
$ git diff <source branch> <target branch>
- git citool
git citool是Git提交的图形化替代。

用法
- git mv
重命名git文件。接受两个参数,源文件名和目标文件名。
用法
$ git mv <old-file-name> <new-file-name>
- git clean
你可以使用git clean命令处理未跟踪的文件。可以使用此命令从工作目录中删除所有未跟踪的文件。如果要处理跟踪的文件,则需要使用git reset命令。
用法
- git help
Git中有许多命令,如果你需要其他命令的帮助,则可以随时在终端上使用git help。
用法
- git whatchanged
此命令的作用与git log相同,但为原始格式。并且由于历史原因,它也是git的一份子。
用法
本Git命令指南共分为三个部分:基础命令,中级命令和高级Git命令。
基本Git命令
在这个部分中,我们要学习的是一些非常基础的Git命令。这些基本的Git命令是学习其他高级命令的基础。
下面请看这9个基本的Git命令。
git config命令非常有用。尤其是在你第一次使用Git或刚安装新的Git时。此命令可设置身份——Name和Email地址。并且每次提交时会使用此信息。
用法
顾名思义,它会检查你使用的是哪个版本的Git。目前,截至编写本指南时,Git for Windows的最新版本是2.31.1。它发布于2021年3月27日。
用法
这可能是你在Git中启动新项目所使用的第一个命令。此命令将创建一个空白的新存储库,然后你可以将源代码存储在此存储库中。
用法
或者,你也可以在git init命令中使用存储库名称。
git clone命令将使用现有的存储库进行复制。git init和git clone之间有一个主要区别。
在你需要在现有的存储库上进行复制时,使用git clone。git clone命令首先在内部使用git init命令,然后检出所有内容。
用法
git add命令会把所有新的代码文件或修改后的文件添加到存储库中。此命令提供了添加文件和文件夹的不同选项。
下面是git add命令的用法。
将单个文件添加到暂存区
此选项会将所有修改过的文件和新文件添加到暂存区
这个Git命令是必不可少的。如果不能合理利用此命令,则可能会降低项目质量。
简而言之,git commit会将更改添加到本地存储库。
用法
使用此Git命令可以方便地查看有多少文件需要得到关注。你可以随时运行此命令。
此命令可以用来在git add和git commit之间查看状态。
用法
大多数时候,你的Git存储库中总会有多个分支。我们可以使用git branch命令有效地管理分支。Git分支有许多不同的选项和开关。
为简单起见,在这里我将重点介绍如何创建和删除Git分支。
用法
(i)列出所有分支:
(ii)创建新的分支:
(iii)删除分支:
此Git命令用于在分支之间进行切换。这是功能强大的git命令之一,堪称万能的瑞士军刀。
以下是切换到另一个分支的语法。
用法
此外,你也可以创建和检出到分支,用法如下
中级Git命令
掌握了基本的Git命令之后,我们就该学习中级Git命令了。如果你需要与团队合作,与他人共享代码,那么这些Git命令会非常有用。另外,还有一些类似git log命令,这些命令可帮助查看以前的提交历史。
git remote命令就像边界,如果你需要与外界连接,则必须使用git remote命令。此命令会将你的本地存储库连接到远程。
用法
举例
(借助git remote命令)与远程存储库连接之后,就需要将更改推送到存储库。
用法
举例
在使用git push之前,我们应该先设置好origin和upstream。下面是设置upstream的命令。
用法
举例
当需要下载其他团队成员的更改时,就得使用git fetch。
此命令会下载有关提交、引用等的所有信息,因此你可以在将这些更改应用于本地存储库之前对其进行检查。
用法
git pull命令下载内容(而不是元数据),并立即用最新的内容更新本地存储库。
用法
此git命令会临时存储已修改的文件。你可以使用以下Git命令处理stash工作。
用法
可以使用以下命令查看所有stash
如果你需要应用stash到分支,那就使用apply
在git log的帮助下,你可以看到所有之前的提交,并且最近的提交出现在最前面。
用法
默认情况下,它将显示当前已检出分支的所有提交,但是你可以强制通过所有选项来查看所有分支的所有提交。
git shortlog命令会显示来自git log命令的摘要。如果你只对简短的摘要感兴趣,那么此命令就非常有用了。

这个命令有助于查看谁处理了什么,因为它对作者及其提交进行了分组。
用法
与git log相比,此命令将显示有关特定提交的详细信息。
用法
有时你需要从代码库中删除文件,在这种情况下,可以使用git rm命令。
它可以从索引和工作目录中删除跟踪的文件。
用法
git merge可帮助将来自两个分支的更改集成到单个分支中。
用法
此命令会将<branch_name>合并到当前你选择的分支中。
高级Git命令
现在是时候再上一个层次了。在这个部分中,我们要学习的是高级的Git命令。这些命令就需要花时间去练习了。
但是一旦掌握了这些命令的基础知识,使用起来不要太轻松哦。
git rebase类似于git merge命令。它把两个分支集成到一个分支中,但有一个不一样的地方:git rebase命令将会重写提交记录。
当你有多个私有分支合并到单个分支时,应使用git rebase命令。它将使得提交历史成为线性的。
用法
git bisect命令可帮助查找糟糕的提交。
用法
i)启动git bisect
ii)让git bisect知道什么是好的提交
iii)让git bisect知道什么是糟糕的提交
通过git bisect,只要几分钟你就可以缩小问题代码的范围。
git cherry-pick是一个蛮有用的命令,允许你从任意分支中选择任意提交并将其应用于其他任意分支。
用法
git cherry-pick不会修改存储库的历史记录;相反,它会添加到历史记录。
git archive命令会把多个文件合并为单个文件。就好像zip实用程序一样,所以你可以提取存档文件以获取单个文件。
用法
它将创建当前修订的zip存档。
在大多数情况下,当你使用git pull时,你需要重新设置基准(并且不进行合并)。
此时,你就可以使用此选项。
用法
这将帮助保持干净的历史记录。另外,还可以避免多次合并。
如果你需要逐行检查任意文件的内容,则需要使用git blame命令。它可以帮助确定是谁对文件进行了更改。
用法
在Git中,标签很有用,你可以使用它们来管理发布。你可以将git tag视为不会改变的分支。尤其是要公开发布的时候,则更为重要了。
用法
git verify-commit命令将检查gpg签名。GPG,GNU Privacy Guard,是sign文件中使用的工具,包含签名。
用法
可以以同样的方式确认标签。
用法
大多数情况下,在提交或推送之前,你需要比较两个git文件或分支。用这个命令就方便多了。
用法
i)将工作目录与本地存储库进行比较:
ii)比较两个分支:
git citool是Git提交的图形化替代。

用法
重命名git文件。接受两个参数,源文件名和目标文件名。
用法
你可以使用git clean命令处理未跟踪的文件。可以使用此命令从工作目录中删除所有未跟踪的文件。如果要处理跟踪的文件,则需要使用git reset命令。
用法
Git中有许多命令,如果你需要其他命令的帮助,则可以随时在终端上使用git help。
用法
此命令的作用与git log相同,但为原始格式。并且由于历史原因,它也是git的一份子。
用法