版本控制系統(tǒng)Git 入門(二)

上一篇

版本控制系統(tǒng)Git 入門(一)

版本庫

版本庫又叫倉庫英文為repository,可以理解為一個(gè)目錄,這個(gè)目錄里的文件被git管理起來,git可以追蹤它的所有的修改。

創(chuàng)建版本庫,初始化版本庫git init

以下所以例子是用msysGit下的Git Bash在Windows進(jìn)行。

1、 mkdir創(chuàng)建目錄,我是在D盤上創(chuàng)建,pwd用于顯示當(dāng)前目錄。當(dāng)前位于D盤下gitDemo目錄。
2、 git init這個(gè)命令是把當(dāng)前目錄初始化為git可以管理的目錄。如果初始化成功,會在當(dāng)前目錄下生成.git目錄也稱git工作樹,對文件的所以操作都會記錄在此工作樹中,使用ls -ah命令可以查看。

查看倉庫的狀態(tài)git status

git status是用于查看git倉庫的狀態(tài),是經(jīng)常使用的命令,倉庫在不斷進(jìn)行操作的過程中,狀態(tài)經(jīng)常變化,因?yàn)榭梢岳趃it status知道當(dāng)前倉庫的狀態(tài)。


解析:
在master分支中,沒有可提交的內(nèi)容。分支概念在后續(xù)中在說,所謂提交(commit)就是指當(dāng)前工作樹或者說工作區(qū)文件的狀態(tài)為無。
此時(shí)創(chuàng)建一個(gè)git.text文件,再用git status查看下狀態(tài)。



解析:
可以看到此時(shí)在Untrached fileds中顯示了 git.txt,指示當(dāng)前狀態(tài)是git.txt沒有被追蹤。

工作區(qū)和暫存區(qū)

工作區(qū)就是可以看到的目錄,例如gitDemo這個(gè)目錄是工作區(qū)。
在前面提到的.git這個(gè)目錄其實(shí)才是版本庫,里面記錄了所以的修改,在.git中有個(gè)暫存區(qū)index或者stage,它是在提交到分支中的一個(gè)臨時(shí)區(qū)域。我們在做所有修改之前都會把工作區(qū)中的修改(或者說每一次操作)放在暫時(shí)區(qū),然后才提交到分支中。

向暫存區(qū)中增加每一次操作(修改)git add


解析:
要想文件成為git倉庫管理的對象,必須使用git add命令將其加入到git暫存區(qū)。在上圖中使用git add git.txt命令將git.txt加入到了暫存區(qū),然后使用git status查看git的狀態(tài),可以看到在暫存區(qū)有個(gè)新文件 git.txt有待commit(提交)。

向分支中提交暫存區(qū)的內(nèi)容git commit

git commit 可以將暫存區(qū)中文件或者修改保存到分支中即保存了歷史記錄,為了以后的撤銷查看復(fù)原和克隆等。
使用git commit -m "提交信息" -m后面緊跟著是提交信息,方便以后查看此次提交是為了什么,所以這個(gè)提交信息盡可能寫的具體。


解析:
git commit之后就將之前添加到暫存區(qū)的所有內(nèi)容注意所有即不管之前add多少次修改進(jìn)暫存區(qū)中,只有執(zhí)行一次git commit就會一次性將暫存區(qū)中的所有添加到了當(dāng)前分支中,由圖可知當(dāng)前的分支是master(之后再闡述)。此次暫存區(qū)與工作區(qū)應(yīng)該是空的。使用git status查看下。


可以看到nothing to commit。

查看提交日志git log

git log可以查看以往提交的記錄包括是什么人在什么時(shí)候提交以及前后的差別


解析:
commit 右邊提交的版本號用哈希值表示
Author 顯示的是之前設(shè)置用戶的用戶名和郵箱地址
Date 顯示時(shí)間
接下來就是提交的信息

  • 可以添加一些參數(shù),查看日志


解析:
$ git log --pretty=oneline只顯示每個(gè)提交的一行信息。

  • 顯示文件的改動(dòng)


解析:
$ git log -p git.txt可以顯示這個(gè)文件的前后改動(dòng)。

查看工作區(qū)與暫存區(qū)還有最新提交之前的區(qū)別git diff

  • 查看工作區(qū)和暫存區(qū)之間的區(qū)別
    先在git.txt中添加內(nèi)容比如hello,添加之后輸入git diff查看

    解析:
    由于剛剛的修改git.txt的內(nèi)容,未把工作區(qū)添加到暫存區(qū)中,所以程序只顯示工作區(qū)和最新提交的區(qū)別。+表示的是新添加的行,-表示被刪除的行,由上圖可以看到新添加了hello。
    把工作區(qū)新的修改添加到暫存區(qū)中再使用git diff查看下區(qū)別。此時(shí)是沒有任何信息的,因?yàn)榇藭r(shí)工作區(qū)和暫存區(qū)的內(nèi)容是一樣了。
  • 查看工作區(qū)和最新提交的區(qū)別git diff HEAD
    剛剛已經(jīng)把修改的內(nèi)存添加到了暫存區(qū),但是沒有提交到分支中,所以使用git diff HEAD查看下工作區(qū)和最新提交的區(qū)別。


解析:
這里的HEAD是個(gè)指針指向當(dāng)前分支的是最近的一次提交,由圖看到區(qū)別是工作區(qū)多了個(gè)hello??梢栽囋嚢褧捍鎱^(qū)的內(nèi)容提交到分支后,再使用git diff HEAD查看下工作區(qū)和最新提交的區(qū)別。

下一篇

版本控制系統(tǒng)Git 入門(三)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容