日常筆記:git

Preface

  其實自己也用了好久好久的 Git 了,但是都是零零碎碎的,不成系統。這篇博客就是記錄我學習使用 Git 的筆記吧,一是方便自己查閱,同時也希望可以幫到你。
  無特殊聲明,我都是在Linux環境下進行操作。中間參考了網上其他人的筆記或者教程,我會在後面註明。
  這篇博客會保持更新。^_^

Notes

在進行 Git 操作之前,我們要切換到 Git 倉庫目錄下。這時候執行一個命令查看當前目錄是不是 Git 倉庫目錄:

# 查看當前 git 倉庫的一些狀態,這個命令是最頻繁使用的命令之一
$ git status 

如果初次使用,一般我們一開始並不在 Git 倉庫目錄下。這時候終端會顯示如下:

這裏寫圖片描述

這時候,需要輸入:

$ git init # 初始化 git 倉庫

完成初始化後,顯示如下:

這裏寫圖片描述

這時候,我們新建一個文件:

$ touch helloWorld.md # 新建一個*.md文件
$ git status # 再次查看狀態信息

這裏寫圖片描述

說明一下,這個新建的helloWorld.md默認是在master分支(branch)。命令行中提示這個helloWorld.mdUntracked files,說明這個helloWorld.md文件還未被跟蹤,即還未提交到 git 倉庫裏,而且出現了一個提示:use “git add” to track,即可以用git add <files>來操作你想提交的文件。

編輯上面創建的helloWorld.md之後,用git add <files>命令:

這裏寫圖片描述

再使用git status命令,可以看見,狀態改成了:

Changes to be committed # 意思是 helloWorld.md 文件等待被提交

這時候又有一個提示,即:

# 使用下面提示的命令移除緩存。
use "git rm --cache <file>..." to unstage



因爲 git 分爲三個部分:一部分是你自己的文件;另外一個是緩存區;最後一個是本地庫。
當你修改了自己的文件後,你會git add將修改保存到緩存區,然後再用git commit推送修改到本地庫中。

進行提交到本地庫:

$ git commit -m "提交的描述信息" 
# 如果我們這裏不用-m參數的話
# git將調到一個文本編譯器(通常是nano)來讓你輸入提交的描述信息

可能一天下來,你對工作樹中的許多文檔都進行了更新(文檔添加、修改、刪除),但是我忘記了它們的名字,此時若將所做的全部更新添加到索引中,比較輕省的做法就是:

$ git commit -a -m "提交的描述信息"

git commit命令的-a選項可只將所有被修改或者已刪除的且已經被git管理的文檔提交到倉庫中。

如果只是修改或者刪除了已被Git 管理的文檔,是沒必要使用git add命令的。git add命令除了能夠判斷出當前目錄(包括其子目錄)所有被修改或者已刪除的文檔,還能判斷用戶所添加的新文檔,並將其信息追加到索引中。

對於已經修改提交過的註釋,如果需要修改,可以藉助git commit --amend來進行

# git commit --amend

更多詳細的git commit內容,查閱git commit文檔,如果我用到了,會在更新。但是這裏作爲示例,我只用如下的:

$ git commit -m 'first commit'

# 再輸入 git status
$ git status

這裏寫圖片描述

這個時候再輸入git status,會提示:nothing to commit, working directory clean,沒什麼要commit了的,工作目錄是clean的。

這時候,輸入:

$ git log # 查看所有產生的 commit 記錄

會有如下顯示:

這裏寫圖片描述

git log命令可以查看所有產生的 commit 記錄,以及 commit 人的賬號以及時間信息,其其提交時候的附帶信息(git commit -m 'first commit')叫 first commit

前面已經說過了,git 分爲三個部分,第一個部分是本地文件,第二個是緩存區,第三個是本地庫。我們通過git add將本地文件add到緩存區,再通過git commit將緩存區文件commit到本地庫。因此stormzhang的AndroidDeveloper專欄有這樣的解釋

看到這裏估計很多人會有疑問,我想要提交直接進行 commit 不就行了麼,爲什麼先要再add一次呢?首先git add是先把改動添加到一個「暫存區」,你可以理解成是一個緩存區域,臨時保存你的改動,而git commit纔是最後真正的提交。這樣做的好處就是防止誤提交,當然也有辦法把這兩步合併成一步,不過後面再介紹,建議新手先按部就班的一步步來。

下面就要寫 Git 中的很重要的branch(分支)的概念了。
嗯,這次先寫到這裏。

Reference

  1. https://git-scm.com/docs
  2. http://blog.csdn.net/hudashi/article/details/7664409
  3. https://zhuanlan.zhihu.com/p/21269318?refer=stormzhang
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章