Git基础实操笔记

●git init——初始化仓库

$ mkdir git-tutorial
$ cd git-tutorial
$ git init
Initialized empty Git repository in /Users/hirocaster/github/github-book
/git-tutorial/.git/

如果初始化成功,执行了git init命令的目录下就会生成.git目录。这个.git目录里存储着管理当前目录内容所需的仓库数据。

在Git中,我们将这个目录的内容称为“附属于该仓库的工作树”。

●git status——查看仓库的状态

git status命令用于显示Git仓库的状态。这是一个十分常用的命令,请务必牢记。

$ git status
# On branch master
#
# Initial commit
#
nothing to commit (create/copy files and use "git add" to track)

尚没有可提交的内容,就是说当前我们建立的这个仓库中还没有记录任何文件的任何状态。

●git add——向暂存区中添加文件

要想让文件成为Git仓库的管理对象,就需要用git add命令将其加入暂存区(Stage或者Index)中。暂存区是提交之前的一个临时区域。

$ git add README.md
$ git status
# On branch master#
# Initial commit
#
# Changes to be committed:
#   (use "git rm --cached <file>..." to unstage)
#
#        new file:   README.md
#

将README.md文件加入暂存区后,git status命令的显示结果发生了变化。可以看到,README.md文件显示在Changes to be committed中了。

●git commit——保存仓库的历史记录

git commit命令可以将当前暂存区中的文件实际保存到仓库的历史记录中。通过这些记录,我们就可以在工作树中复原文件。

记述一行提交信息

我们来实际运行一下git commit命令。

$ git commit -m "First commit"
[master (root-commit) 9f129ba] First commit
  1 file changed, 0 insertions(+), 0 deletions(-)
  create mode 100644 README.md

-m参数后的"First commit"称作提交信息,是对这个提交的概述。

记述详细提交信息

刚才我们只简洁地记述了一行提交信息,如果想要记述得更加详细,请不加-m,直接执行git commit命令。执行后编辑器就会启动,并显示如下结果。

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch master
#
# Initial commit
#
# Changes to be committed:
#   (use "git rm --cached <file>..." to unstage)
#
#        new file:   README.md
#

在编辑器中记述提交信息的格式如下。

●第一行:用一行文字简述提交的更改内容

●第二行:空行

●第三行以后:记述更改的原因和详细内容

只要按照上面的格式输入,今后便可以通过确认日志的命令或工具看到这些记录。

在以#(井号)标为注释的Changes to be committed(要提交的更改)栏中,可以查看本次提交中包含的文件。将提交信息按格式记述完毕后,请保存并关闭编辑器,以#(井号)标为注释的行不必删除。随后,刚才记述的提交信息就会被提交。

中止提交

如果在编辑器启动后想中止提交,请将提交信息留空并直接关闭编辑器,随后提交就会被中止。

查看提交后的状态

执行完git commit命令后再来查看当前状态。

$ git status
# On branch master
nothing to commit, working directory clean

当前工作树处于刚刚完成提交的最新状态,所以结果显示没有更改。

●git log——查看提交日志

git log命令可以查看以往仓库中提交的日志。

我们先来看看刚才的git commit命令是否被记录了。

$ git log

commit 9f129bae19b2c82fb4e98cde5890e52a6c546922
Author: hirocaster <hohtsuka@gmail.com>
Date:   Sun May 5 16:06:492013 +0900

    First commit

如上图所示,屏幕显示了刚刚的提交操作。commit栏旁边显示的“9f129b……”是指向这个提交的哈希值。Git的其他命令中,在指向提交时会用到这个哈希值。 Author栏中显示我们给Git设置的用户名和邮箱地址。Date栏中显示提交执行的日期和时间。再往下就是该提交的提交信息。

只显示提交信息的第一行

如果只想让程序显示第一行简述信息,可以在git log命令后加上--pretty=short。

$ git log --pretty=short

commit 9f129bae19b2c82fb4e98cde5890e52a6c546922
Author: hirocaster <hohtsuka@gmail.com>

    First commit

只显示指定目录、文件的日志

只要在git log命令后加上目录名,便会只显示该目录下的日志。如果加的是文件名,就会只显示与该文件相关的日志。

$ git log README.md

显示文件的改动

如果想查看提交所带来的改动,可以加上-p参数,文件的前后差别就会显示在提交信息之后。

$ git log -p

比如,执行下面的命令,就可以只查看README.md文件的提交日志以及提交前后的差别。

$ git log -p README.md

如上所述,git log命令可以利用多种参数帮助开发者把握以往提交的内容。不必勉强自己一次记下全部参数,每当有想查看的日志就积极去查,慢慢就能得心应手了。

●git diff——查看更改前后的差别

git diff命令可以查看工作树、暂存区、最新提交之间的差别。

查看工作树和暂存区的差别

执行git diff命令,查看当前工作树与暂存区的差别。

$ git diff

diff --git a/README.md b/README.md
index e69de29..cb5dc9f 100644
--- a/README.md
+++ b/README.md
@@ -0,0 +1 @@
+# Git教程

由于我们尚未用git add命令向暂存区添加任何东西,所以程序只会显示工作树与最新提交状态之间的差别。

这里解释一下显示的内容。“+”号标出的是新添加的行,被删除的行则用“-”号标出。我们可以看到,这次只添加了一行。

用git add命令将README.md文件加入暂存区。

$ git add README.md

查看工作树和最新提交的差别

如果现在执行git diff命令,由于工作树和暂存区的状态并无差别,结果什么都不会显示。

执行以下命令。

$ git diff HEAD
diff --git a/README.md b/README.md
index e69de29..cb5dc9f 100644
--- a/README.md
+++ b/README.md
@@ -0,0 +1 @@
+# Git教程

不妨养成这样一个好习惯:在执行git commit命令之前先执行git diff HEAD命令,查看本次提交与上次提交之间有什么差别,等确认完毕后再进行提交。这里的HEAD是指向当前分支中最新一次提交的指针。

由于我们刚刚确认过两个提交之间的差别,所以直接运行git commit命令。

$ git commit -m "Add index"
[master fd0cbf0] Add index
 1 file changed, 1 insertion(+)

保险起见,我们查看一下提交日志,确认提交是否成功。

$ git log
commit fd0cbf0d4a25f747230694d95cac1be72d33441d
Author: hirocaster <hohtsuka@gmail.com>
Date:   Sun May 5 16:10:152013 +0900

    Add index

commit 9f129bae19b2c82fb4e98cde5890e52a6c546922
Author: hirocaster <hohtsuka@gmail.com>
Date:   Sun May 5 16:06:492013 +0900

    First commit

成功查到了第二个提交。

参考资料

《GitHub入门与实践》

可直接网上搜索电子教材下载(不做伸手党🦅);

在读书APP上(推荐微信读书,可以白嫖)搜索,加入书架阅读。

一个以游戏形式练习Git的网站:Learn Git Branching(回来你会感谢我的)


🏹每日分享🏹:

一根会思考的芦苇。我追求自己的尊严,绝不是诉诸空间,而是诉诸对自己思想的掌控。如果已经拥有自己的世界,我就不再需要其他。宇宙通过空间囊括了我,吞没了我,使我犹如一个原子,但通过思想,我囊括了整个宇宙。

一《人是一根会思考的芦苇》

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风过留不留声

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值