GitHub使用入门(二):Git基本用法

GitHub中的主要命令和用法都是在Git中完成的,所以我们有必要了解Git的基本语法和规则。下面来介绍一下:

基本操作

  • git init:初始化仓库
    必须先要进行初始化仓库才能进行版本控制,下面我们就来实际进行初始化仓库。

$ mkdir git-tutorial


$ cd git-tutorial


$ git init
Initialized empty Git repository in C:/Users/keked/Desktop/git-tutorial/.git/

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

  • git status:查看仓库状态

工作数和仓库在被操作过程中,状态常常会发生变化,所以我们可能会经常需要这个命令来查一下。


$ git status
On branch master

No commits yet

nothing to commit (create/copy files and use "git add" to track)

结果显示我们处于master分支下,我们建立这个仓库还没有任何可以提交的内容,这里我们建立README.md文件作为管理对象,作为提交前期准备。


$ touch README.md


$ git status
On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        README.md

nothing added to commit but untracked files present (use "git add" to track)

看到在Untracked files中显示了README.md文件。类似的,只要对Git工作树或仓库进行操作,git status命令的显示结果就会发生变化。

  • git add:向暂存区中添加文件
    如果只是对Git仓库中的工作树创建了文件,那么该文件不会被计入Git仓库的版本管理对象中。要想让文件成为Git仓库的管理对象,我们需要使用git add命令将期加入缓存区(Stage或Index),缓存区是提交之前的一个临时区域。

$ git add README.md


$ git status
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

        new file:   README.md
  • git commit:保存仓库的历史记录
    git commit命令可以将当前暂存区中的文件实际保存到仓库的历史记录中。通过这些命令,我们就可以在工作树种复制原文件。
$ git commit -m "First commit"

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

-m参数后的"First commit"是对提交信息的概述。

刚才我们只是简单记录了一行提交信息,如果想要记录的更加详细,应该不加-m,直接运行git commit命令。

在编辑器中记录提交信息格式如下:
第一行: 用一行文字简述提交更改内容
第二行: 空格
第三行以后:记述更改的原因和详细内容
只要按照上面格式输入,今后就可以通过确认日志的命令或工具看到这些记录。

如果在编辑器启动后想终止提交,将提交的信息留空并直接关闭编辑器就可以了终止了。
最后提交完成之后还可以通过git status查看当前状态。

  • git log:查看提交日志
$ git log
commit a9cf63136951c67ec98fdc53f753edf3923f7967 (HEAD -> master)
Author: Einstellung <[email protected]>
Date:   Mon Oct 1 20:19:54 2018 +0800

    First commit

commit旁边显示的是,指向这个提交的哈希值。

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

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

$ git log README.md

如果想查看提交所带来的改动,可以添加参数 -p,文件前后差异就会显示出来。当然,如果只想看某个文件的前后差异,我们可以写成

$ git log -p README.md
  • git diff:查看更改前后的差别

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

我们在刚提交的README.md文件写入一些东西

今天也要好好加油鸭

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

$ git diff
diff --git a/README.md b/README.md
index e69de29..547423e 100644
--- a/README.md
+++ b/README.md
@@ -0,0 +1 @@
+今天也要好好加油鸭
\ No newline at end of file

因为我们还没有使用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..547423e 100644
--- a/README.md
+++ b/README.md
@@ -0,0 +1 @@
+今天也要好好加油鸭
\ No newline at end of file

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

$ git commit -m "Add sequences"
[master 5f18642] Add sequences
 1 file changed, 1 insertion(+)

$ git log
commit 5f1864270c954ed705f8e5abc7f62f9b4103eb8e (HEAD -> master)
Author: Einstellung <[email protected]>
Date:   Mon Oct 1 21:06:13 2018 +0800

    Add sequences

commit a9cf63136951c67ec98fdc53f753edf3923f7967
Author: Einstellung <[email protected]>
Date:   Mon Oct 1 20:19:54 2018 +0800

    First commit

可以查看到两次提交了。


延伸阅读

https://git-scm.com/book/zh/v1

https://learngitbranching.js.org

http://git-school.github.io/visualizing-git/

猜你喜欢

转载自blog.csdn.net/Einstellung/article/details/82918690
今日推荐