为了使用Git,需要知道基本命令,如git status、git add、git checkout、git push等,本文将为大家介绍几个最常见的的Git命令:
1 git status
此命令将告诉开发人员有关当前工作目录中已跟踪和未跟踪文件的信息。
可以使用此命令查找已更改并需要提交的文件。
user@host /c/git/course (master)
$ git status
# 在分支 master 上
没有要提交的内容,工作目录干净
由于这是一个干净的检查,没有任何更改,因此git status说没有要提交的内容,但是现在如果创建一个名为“readme.txt”的文件并再次运行git status,则会看到差异,并且它将高度指出readme.txt是新文件并且未跟踪,带有红色输出。
$ git status
# 在分支 master 上
# 未跟踪的文件:
# (使用 "git add ..." 将其包含在提交中)
#
# readme.txt
没有提交的内容,但存在未跟踪的文件(使用 "git add" 跟踪)
2 git add
此命令将文件添加到暂存区,这意味着现在git已开始跟踪该文件。在调用git commit之前,不会提交该文件,但是git将跟踪任何更改。
例如,在上一个示例中创建的文件“readme.txt”到目前为止尚未被跟踪。现在使用git add命令来跟踪该文件。
$ git add readme.txt
现在该文件已添加到暂存区,如果再次运行git status,则会看到不同的输出,还会显示文件名以绿色显示,以指示它已被跟踪但尚未提交。
$ git status
# 在分支 master 上
# 要提交的更改:
# (使用 “git reset HEAD …” 取消暂存)
#
# 新文件:readme.txt
#
3 git branch
此命令用于在Github中创建分支。可以使用此命令创建分支、修改分支和删除分支。
例如:
$ git branch F1_BRANCH
将从您所在的主干创建一个新分支。例如,如果您在主分支上,则F1_BRANCH将从HEAD分支创建。
4 git checkout
可以使用此git命令放弃本地更改并从存储库获取新副本。
$ git checkout HEAD
将放弃自上次提交以来的所有未暂存更改或自HEAD以来的所有未暂存更改。它最适合仅本地撤消,因为它不会影响团队依赖的远程分支的提交历史记录。
还可以使用git checkout命令从特定分支下载代码。例如:
$ git checkout F1_BRANCH
将检出F1_BRANCH中的代码,并更新您的工作目录以匹配。
5 git log
此命令用于查看所有提交历史记录。还可以使用此命令查看文件的历史记录,如下例所示:
$ git log -p readme.txt
6 git diff
这是另一个有用的git命令,用于查看本地更改的所有文件。该命令还将显示所有文件中发生了什么更改。
$ git diff readme.txt
提示:您可以提供文件名以仅显示一个文件的更改。
7 git blame
这是另一个较少知道的git命令,可用于查找已更改文件的人员,如下所示:
$ git blame readme.txt
以上命令将显示谁更改了此文件以及添加了什么内容以及何时添加。
8 git reflog
这是许多程序员忽略的另一个git命令。可以使用此git命令显示本地存储库的HEAD的更改日志。
$ git reflog
提示:此命令适用于查找丢失的工作。实际上,最后四个git命令都对检查事物有用。
9 git reset
可以使用此命令放弃任何本地提交。例如:
$ git reset --hard HEAD
放弃自最近提交以来的所有已暂存和未暂存更改。您可以将HEAD更改为任何提交哈希以放弃自那次提交以来的更改。HEAD只是最近提交的一个好指针。
另一方面,硬选项表示已丢弃已暂存和未暂存的更改。
10 git revert
可以使用它来还原远程分支中的提交。与在提交和单个文件级别上工作的git reset和git checkout不同,git revert仅在提交级别上工作。
$ git revert last_commit
还原或撤消last_commit中更改的影响。值得注意的是,当它将更改还原到存储库时,git revert会生成新提交。
可以使用这三个git reset、git checkout和git revert命令来撤消对存储库所做的更改,尽管它们之间存在轻微差异。
提示:如果只是使用自己的本地提交而尚未合并到团队的远程分支(如master)中,则可以使用其中任何一个命令来撤消更改,但如果已合并并且要使提交无效,则只有git revert是要使用的命令。
11 git clean
可以使用git clean命令删除本地目录中的未跟踪文件。例如,当运行程序时,它可能会在工作目录中创建一些.log文件,可以使用此命令摆脱它们。
$ git clean -n
可以删除本地工作目录中的未跟踪文件。但是,还应该注意一些有用的标志,例如:
-n标志用于干运行,不会删除任何内容。
-f标志实际上删除文件。
而且,可以使用-d标志删除未跟踪的目录。
提示:值得注意的是,默认情况下,.gitignore未跟踪的文件不会被删除,但如果需要,可以更改此行为。
12 git commit
此命令用于提交更改。值得注意的是,在git中提交更改仅在本地工作目录中完成。在使用git push命令之前,更改不会进入远程分支。
$ git commit -m
允许使用提交消息提交更改。如果要更改消息,则还可以使用
$ git commit --amend
它允许您编辑最近的提交消息。如果有任何内容,则还可以将已暂存的更改添加到最近的提交中。
提示:仅在提交未集成到远程主分支中时才使用此命令。
这里有一个来自RebelLabs的不错的Git备忘单,以记住所有基本Git命令:
图片
这就是每个Java程序员、开发人员、软件工程师都应该知道的一些最基本的Git命令。希望文章对读者有所帮助。