從零開始Git

首先需要安裝git,Linux和Mac比較方便可以用apt-get install git(Linux),brew install git(在安裝了homebrew的Mac上),windows可以直接下載msysgit,安裝即可。

完成安裝之后記得給自己寫上門牌號:

git config --global user.name "Your Name"

git config --global user.email "eamil@example.com"

1、創(chuàng)建版本庫

如何在本地創(chuàng)建Git的版本庫。

在你想要保存版本庫的文件目錄下(注:盡量使用英文名做目錄名),使用
git init
使用后會提示你:

Initialized empty Git repository in your repository path

在目錄下會出現(xiàn)一個.git文件夾,應該是默認為隱藏文件夾,調(diào)出來即可。

2、Git結構概述

3、創(chuàng)建readme.txt

在git目錄下,創(chuàng)建一個文本文檔,內(nèi)容隨意寫,保存為readme.txt。

(1)文件提交

git add readme.txt

告訴git提交的文件是什么——提交到暫存區(qū)

git commit -m "first version of readme file"

可以利用-m為這次提交的文件寫注釋,方便未來的版本控制時,讓你明白你在提交這個文件的時候做了什么。
當然,你可以一次性add多個文件,在利用commit提交的時候,也可以一次性寫多個文件。

commit:犯罪;承諾;委托;托付。(理解?)
git commit 提交更改,將暫存區(qū)內(nèi)容提交到當前分支。

(2)本地版本控制

git status
用來查看repository的當前狀態(tài)。

D:\myFirstGit>git status

On branch master
nothing to commit, working tree clean

接下來,修改readme.txt.,再利用git status來查看自己的repository。

D:\myFirstGit>git status

On branch master
Changes not staged for commit:
(use "git add..." to update what will be committed)
(use "git checkout --..." to discard changes in working directory)
modified: readme.txt
no changes added to commit (use "git add" and/or "git commit -a")

說明修改過后還沒有進行add 與 commit做提交。試試commit之后git status是什么樣。

D:\myFirstGit>git add readme.txt
D:\myFirstGit>git commit -m "lol added"

[master 36d72f9] lol added
1 file changed, 2 insertions(+), 1 deletion(-)

這個操作把我們修改過的內(nèi)容提交到了目前的分支上。

D:\myFirstGit>git status

On branch master
nothing to commit, working tree clean

再利用git status查看目前狀態(tài),發(fā)現(xiàn)沒有修改了但是還未提交的內(nèi)容。

git diff
git diff 來查看修改前后的不同。

D:\myFirstGit>git diff readme.txt

diff --git a/readme.txt b/readme.txt

index 88b9dbc..37b890d 100644

--- a/readme.txt

+++ b/readme.txt

@@ -1,2 +1,3 @@

ReadMe First Please!

-Lol!

\ No newline at end of file

+Lol!

+Changes had been changed.

\ No newline at end of file
windows下使用type來看看readme.txt里面寫了什么(跟Linux下的cat一樣):

D:\myFirstGit>type readme.txt

ReadMe First Please!

Lol!

Changes had been changed.
重新add 和 commit 之后,就已經(jīng)把最新修改的內(nèi)容放入了你的repository中。

git log

git log <filename>來查看目前文件一共有多少個版本。

D:\myFirstGit>git log readme.txt

最近一次修改

commit 63580d24072303d79a2fe6ea10407bba644c2d32 (HEAD -> master) #HEAD指向目前版本

Author: WZChan 進行修改的用戶

Date: Fri Sep 29 11:19:53 2017 +0800 進行修改的時間

    changes                                                                                                     顯示在git commit -m 后所標注的內(nèi)容

倒數(shù)第二次修改

commit 36d72f9e0c8d763571277a2d93158c3b948e7fd6

Author: WZChan

Date: Fri Sep 29 11:04:19 2017 +0800

     lol added

倒數(shù)第三次修改

commit 03f1920945cd99987dd56a57ae0420d0e91c01e1

Author: WZChan

Date: Fri Sep 29 10:58:30 2017 +0800

     myFirstGitFile

如果不需要更多信息,可以試試 git log --pretty=oneline <filename>

D:\myFirstGit>git log --pretty=oneline readme.txt

63580d24072303d79a2fe6ea10407bba644c2d32 (HEAD -> master) changes

36d72f9e0c8d763571277a2d93158c3b948e7fd6 lol added

03f1920945cd99987dd56a57ae0420d0e91c01e1 myFirstGitFile
在上述操作時會有一串“亂碼”是commit id,在稍后的版本回溯中會用到。

git reset

reset有三種方式:

git reset –mixed:此為默認方式,不帶任何參數(shù)的git reset,即時這種方式,它回退到某個版本,只保留源碼,回退commit和index信息

git reset –soft:回退到某個版本,只回退了commit的信息,不會恢復到index file一級。如果還要提交,直接commit即可

git reset –hard:徹底回退到某個版本,本地的源碼也會變?yōu)樯弦粋€版本的內(nèi)容
目前我想要把我的文件回退到commit為lol added的版本,也就是第二次修改的版本中。

執(zhí)行:

git reset --hard 36d72
D:\myFirstGit>git reset --hard 36d72

HEAD is now at 36d72f9 lol added

可以看到目前的HEAD指向了lol added,而我們輸入的那一段數(shù)字就是所謂的commit id
檢查一下:

D:\myFirstGit>git log --pretty=oneline readme.txt

36d72f9e0c8d763571277a2d93158c3b948e7fd6 (HEAD -> master) lol added

03f1920945cd99987dd56a57ae0420d0e91c01e1 myFirstGitFile
如果要回去到changes的版本,則相應的去尋找commit id,執(zhí)行:

git reset --hard 63580d
結果:

D:\myFirstGit>git log --pretty=oneline readme.txt

63580d24072303d79a2fe6ea10407bba644c2d32 (HEAD -> master) changes

36d72f9e0c8d763571277a2d93158c3b948e7fd6 lol added

03f1920945cd99987dd56a57ae0420d0e91c01e1 myFirstGitFile

git reflog
可以查看歷史命令。

從而方便利用其來尋找自己文件版本的commit id。

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

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

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