概观
您可以通过命令行访问Git™的所有功能。本文档列出了在学习Git时可以帮助您的常用命令和选项。

重要:

本文档不全面。它故意省略有关中级和高级Git功能的信息。有关其他命令和选项的更多信息,请阅读Git的文档。
本文档中的术语假定您基本熟悉命令行。
常见的Git命令
笔记:

要解决Git错误,请阅读我们的Git指南 - 疑难解答文档。
有关常规Linux命令,请阅读我们的Linux命令入门文档。
有关访问命令行以帮助运行这些命令的帮助,请阅读我们的如何访问命令行文档。
您可以使用cPanel的 终端界面(cPanel >> Home >> Advanced >> Terminal )从cPanel界面访问命令行。
您可以将该--help选项添加到任何Git命令,以查看该命令的手册页。
git clone

此命令将存储库克隆到新目录,创建远程跟踪分支,并从克隆存储库的活动分支中分叉新的工作分支。

git clone repositoryurl
在上面的示例中,repositoryurl表示要克隆的存储库的URL。

笔记:

使用该git fetch命令更新新存储库的远程跟踪分支。
使用该git pull命令将远程主分支合并到当前主分支中。
cPanel的Git™版本控制界面(cPanel >>主页>>文件>> Git™版本控制)提供用于克隆每个帐户的存储库的URL。

git add
此命令将文件的当前版本添加到下一次提交的暂存内容索引。

git add [options] filepath

在上面的示例中,filepath表示文件的绝对路径或相对于当前工作目录的路径。

要为所有跟踪的文件暂存未提交的更改,请使用其中一个-a或多个-u选项(并且没有指定的文件路径)运行此命令。
此命令仅分阶段当前提交的当前更改。下次创建提交时,必须再次运行该文件的命令才能暂存任何新更改。

git commit
此命令为当前暂存的更改创建新提交。

git commit [options]
当您运行此命令(没有-m选项)时,Git会立即显示一个文本文件,您可以在其中输入并保存提交消息。

要在Git创建提交之前自动暂存已修改和已删除的文件,请使用该-a选项运行此命令。
要直接从命令行指定短提交消息,请使用该-m选项运行此命令。例如:

git commit -m "Commit message here."
注意:

要暂存包含在提交中的更改,请使用或命令或提供单个文件路径作为此命令的参数。 git add git rm

git checkout
此命令将指定的分支设置为当前工作分支。

git checkout [options] branchname
在上面的示例中,branchname表示要检出的分支。

要仅检出指定的文件,请使用文件路径而不是分支名称运行此命令。

git checkout mybranch files/templates/2.html
在此示例中,mybranch表示包含您要检出的文件版本的分支,并files/templates/2.html表示要签出的文件。如果运行此命令,系统将使用files/templates/2.html分支中的文件内容替换当前本地工作分支中的文件内容mybranch。

注意:

如果省略分支名称,Git将从当前分支的HEAD中检出该文件。

要创建具有指定分支名称的新分支,然后将其签出,请使用该-b选项运行此命令。
要强制更改分支,请使用该-f选项运行该命令。此选项使Git覆盖本地更改,以便将工作树与分支的HEAD提交相匹配。

git rm
此命令从Git的索引和工作树中删除文件或目录。

git rm [options] files_or_dirs
在上面的示例中,files_or_dirs表示要删除的文件或目录相对于存储库主目录的路径。

重要:

要运行此命令,指定的文件不能包含未提交的更改。
此命令无法将文件保留在索引中,并从工作树中删除该文件。为此,请使用BASH的rm命令。
如果指定目录名,则还必须使用该-r选项。此选项允许命令以递归方式删除该目录中的文件。

git fetch
此命令从一个或多个其他存储库下载分支,标记及其历史记录。

git fetch [options] remotename
在上面的示例中,remotename表示远程存储库的名称。

git pull
此命令从本地分支或远程或本地存储库中获取和合并更改。对于大多数选项,此命令组合了和命令。 git fetch git merge

git pull [options] repo-or-branch
在上面的示例中,repo-or-branch表示分支名称或存储库名称或URL。

git push
此命令将已提交的更改添加到指定的存储库和分支。

git push [options] repository branch
在上面的示例中,repository表示存储库名称或URL,并branch表示该存储库上的远程分支。

如果未指定存储库,则该命令将执行以下操作之一:
如果当前分支的配置包含远程存储库,则该命令会将更改添加到该存储库。
如果你当前分支的配置并没有包括远程仓库,该命令将更改到origin存储库。
重要:

您必须显式指定存储库才能指定分支。如果未指定分支,则该命令会将更改添加到远程存储库的当前分支。

要将所有本地分支的所有提交推送到其上游存储库,请使用该选项运行此命令。--all
要将指定的存储库添加到分支作为其上游存储库,请使用该--set-upstream选项运行此命令。
这允许您在后续推送到上游时省略存储库。
您必须在使用此选项指定远程仓库。
注意:

cPanel的Git版本控制功能(cPanel >>主页>>文件>> Git版本控制)自动添加一个钩子,每个推送到cPanel管理的存储库触发。有关更多信息,请阅读我们的Git指南 - 部署文档或Git的githooks文档。 post-receive

git branch
此命令创建,列出或删除分支。

git branch [options] branchname
在上面的示例中,branchname表示分支名称。

要创建新分支,请使用所需的分支名称运行此命令。

重要:

Git的不不,当你创建它们自动检查出新的分支机构。您还必须运行该git checkout命令才能检出新分支。

要检索现有本地分支的列表,请运行此命令而不使用分支名称。使用该-a选项可以检索本地和远程分支的列表。
要为指定分支设置上游分支,请使用该-u选项运行此命令。
要重命名指定的分支,请使用-m选项以及当前和新的分支名称运行此命令。例如:

git branch -m oldbranch newbranch
在此示例中,oldbranch表示当前分支名称并newbranch表示新分支名称。

要删除指定的分支,请使用该-d选项运行此命令。

git merge
此命令将一个或多个提交的历史记录组合到当前分支的历史记录中。

git merge [options]
注意:

该git pull命令自动执行此操作。

git blame
此命令显示具有作者的指定文件,最近更改日期,并为文件的每一行提交SHA-1。

git blame [options] filepath
在上面的示例中,filepath表示文件的绝对路径或相对于当前工作目录的路径。

在没有其他选项的情况下运行此命令时,输出将类似于以下示例:

1
2
3
4

6
7
5f033c48d84a (Jane E. Coder 2017-05-24 18:25:53 -0600 1) <!DOCTYPE HTML><font></font>
5f033c48d84a (Jane E. Coder 2017-05-24 18:25:53 -0600 2) <html><font></font>
5f033c48d84a (Jane E. Coder 2017-05-24 18:25:53 -0600 3) <font></font>
5f033c48d84a (Jane E. Coder 2017-05-24 18:25:53 -0600 4) <body><font></font>
54222e949682 (John B. Developer 2018-01-08 10:57:07 +0000 5) <p>Here's some text.</p><font></font>
5f033c48d84a (Jane E. Coder 2017-05-24 18:25:53 -0600 6) <font></font>
5f033c48d84a (Jane E. Coder 2017-05-24 18:25:53 -0600 7) <script>
在此示例中,2017年5月24日,Jane E. Coder提交了对文件的更改。在2018年1月8日,John B. Developer提交了对文件的更改。因为约翰·简后提交的变化,这个输出并没有显示珍妮说了5号线的任何改变或之前简氏犯下的其他行的历史。

git clean
此命令从工作树中删除未跟踪的文件(Git不管理的文件)。

git clean [options]
要显示的未跟踪文件的列表中删除,但不删除它们,运行使用此命令-n选项。
要同时删除未跟踪的目录,请使用该-d选项运行此命令。

git config
此命令在其配置文件中检索或更新Git的全局和存储库设置。

git config [options]
Git将您的设置存储在以下文件中:

/path-to-git/etc/gitconfig - 全局设置。
/path-to-git/config - 存储库设置。
/home-directory/.gitconfig - 用户配置文件。
/home-directory/.config/git/config - 用户配置文件。
笔记:

在上面的路径中,path-to-git表示Git安装的绝对路径,并home-directory表示cPanel帐户的主目录(例如,/home/user/.gitconfig文件。)。
如果两个用户配置文件都存在且其值发生冲突,则系统将使用.gitconfig文件中的值。
此命令为Git的每个可配置设置接受许多选项。要使用此命令,请阅读Git的git config文档。

git diff

此命令比较两个提交,提交和当前工作树,两个分支或工作树或两个文件之间的更改。

git diff [options]
默认情况下,此命令将返回工作树的比较和上次提交(修改,如果你跑了Git会犯的git commit -a命令)。

您可能希望使用以下常用选项:

要查看两个分支的比较,请运行以下命令,其中branch1和branch2表示要比较的分支:

git diff branch1..branch2
要查看两个提交的比较,请运行以下命令,其中FirstSHA和SecondSHA表示两个提交的SHA-1值:

git diff FirstSHA..SecondSHA
要仅查看工作树,分支或提交中的一个文件的两个版本之间的差异,请将该文件路径指定为参数。例如:

git diff branch1..branch2 filename
在上面的例子,branch1并branch2表示从该GIT中将比较的内容的分支filename文件。

git grep
此命令在当前工作树中搜索一个或多个模式(通常是字符串或正则表达式)。

git grep [options] "pattern"
在上面的示例中,pattern表示要查询的数据。

要执行不区分大小写的搜索,请使用该-i选项运行此命令。
要在模式中使用Perl兼容的正则表达式(PCRE),请使用该--perl-regexp选项运行此命令。cPanel和WHM的Git实现自动包含此选项的必要依赖项。
要仅返回包含所有指定模式的文件(当您运行具有多个模式的命令时),请使用该--all-match选项运行此命令。例如:

git grep --all-match "string one" "string two" "string three"
这个例子将返回包含文件string one,string two,和 string three,但将不会返回只包含文件string two。

要返回相对于存储库主目录而不是当前目录的文件路径,请使用该--full-name选项运行此命令。

git log
此命令查询当前分支的提交日志。

git log [options]
要仅查看特定提交范围的结果,请运行以下命令:

git log FirstSHA..SecondSHA
在这个例子中,FirstSHA和SecondSHA代表用于两次提交的SHA-1值。

注意:

如果未指定要查询的提交范围,则此命令将查询origin当前分支的commit和HEAD 之间的所有提交。

要仅查看特定数量的最新日志条目,请运行以下命令,其中num表示要返回的条目数:

git log -num
要仅查看特定日期之前或之后的日志条目,请运行以下命令之一,其中date表示指定的日期:

1
2
git log --before=date<font></font>
git log --after=date
有关日期格式选项,请阅读Git的git log文档。

要仅查看来自特定作者的提交的日志条目,请运行以下命令,其中authorname表示作者在其.gitconfig文件中的名称:

git log --author=authorname
要仅查看包含特定模式(通常是字符串)的日志条目,请运行以下命令,其中pattern表示要查询的模式:

git log --grep=pattern
如果要包含多个要查询的模式,请使用该--all-match选项将输出限制为与所有指定模式匹配的日志条目。

笔记:

该命令还接受来自格式化选项的git diff命令。
如果您只需要汇总的提交日志信息,则可能希望使用该git shortlog命令。

git revert
此命令将恢复指定范围内的现有提交,然后允许您编辑其提交消息。

git revert [options] commit1..commit2
在上面的例子中,commit1和commit2代表用于提交回复的范围中的SHA-1值。

重要:

要运行此命令,您的工作树不能包含未提交的更改。

git shortlog
此命令生成命令输出的缩短版本git log。例如,如果需要为发行说明或更改日志生成更改列表,则可能希望使用此命令。

git shortlog [options]

git stash
此命令使用多个选项来创建,管理和检索更改集(stashes)。在没有指定选项的情况下运行此命令时,它默认为git stash save功能。

git stash [options]
使用以下选项管理存储:

要创建新存储并将当前分支返回到HEAD提交中的状态,请使用该save选项运行此命令。

注意:

使用此选项时,还可以使用该-message选项向存储添加说明。例如:

git stash save -message "Description"
在上面的示例中,Description表示存储描述。

要在创建存储时返回stashed更改与HEAD提交的比较,请使用该show mystash选项运行此命令。
要列出当前的stashes,请使用该list选项运行此命令。
要将隐藏的更改应用于当前工作树并删除存储,请使用该pop mystash选项运行此命令。
要将隐藏的更改应用于当前工作树但不删除存储,请使用该apply mystash选项运行此命令。
要删除所有stashes,请使用该clear选项运行此命令。Git指南 – 常见的Git命令-IDC帮帮忙