Git學習與使用2 版本庫建立修改回退

2021-08-14 23:14:37 字數 4474 閱讀 6644

一.版本庫建立與修改

1.建立版本庫

首先建立乙個空目錄,並且確保目錄名不包含中文,例learngit:

$ cd learngit          

$ pwd

//該命令用於顯示當前目錄

通過git init命令把這個目錄變成git可以管理的倉庫:

$ git init

initialized empty git repository in

f:/learngit/.git/

這時乙個版本庫就建立好了,會發現多了乙個.git的目錄,這個目錄是用來追蹤管理版本庫的,千萬不要手動修改裡面檔案。

把檔案新增到版本庫,我們在git目錄下編寫乙個readme.txt檔案,內容如下:

1.git is a version control system;

2.git is free software;

然後用命令git add把檔案新增到倉庫:

$ git add readme.txt
接著用命令git commit把檔案提交到倉庫:

$ git commit -m "wrote a readme file"
-m是本次提交的說明,最好有意義以後方便查詢改動記錄,commit可以一次提交多個檔案,所以可以多次add不同檔案,比如:

$ git add file1.txt

$ git add file2.txt file3.txt

$ git commit -m "add 3 files."

2.修改檔案

我們已經成功新增並提交了乙個readme.txt檔案,繼續修改檔案:

it is a distributed version control system.

git is free software.

執行git status命令檢視結果:

$ 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")

git status命令可以讓我們時刻掌握倉庫的狀態,上面命令告訴我們,readme.txt被修改過了,但還沒有準備提交的修改。

雖然git告訴我們readme.txt檔案被修改了,但是我們還可以用命令檢視具體修改了什麼:

$ git diff readme.txt      //diff意為difference
之後提交修改和提交新檔案是一樣兩步:

$ git add readme.txt
在執行提交之前,我們再用git status檢視一下當前倉庫的狀態:

$ git status

on branch master

changes to be committed:

(use

"git reset head ..."

to unstage)

modified: readme.txt

$ git commit -m "add distributed"

[master 6a8ab3a] add distributed

1 file changed, 1 insertion(+), 1 deletion(-)

提交之後,我們再用git status檢視一下倉庫的當前狀態:

$ git status

on branch master

nothing

to commit, working directory clean

git告訴我們當前沒有需要提交的修改,而且,工作目錄是乾淨(working directory clean)的。

3.版本回退

現在我們已經學會了修改檔案,現在再修改readme.txt檔案:

git is a distributed version control system.

git is free software distributed under the gpl.

然後嘗試提交:

$ git add readme.txt
現在,我們回顧一下readme.txt檔案一共有幾個版本被提交到git倉庫裡了:

版本1:wrote a readme file

git is a

version control system.

git is free software.

版本2:add distributed

git is a distributed version control system.

git is free software.

git is a distributed version control system.

git is free software distributed under the gpl.

但是在實際工作中,我們不可能記得乙個幾千行的檔案每次都改了什麼內容,但是在git中我們可以用命令git log來檢視歷史記錄:

$ git log

commit f1c6504b3a4a686c26743b75a41e063d98d02c8e

author: zhangyan <[email protected]

.github

.com>

date: wed jan 24

15:52:18

2018 +0800

commit 6a8ab3afe775b79939ccd368429e19d8d5c489aa

author: zhangyan <[email protected]

.github

.com>

date: wed jan 24

11:32:45

2018 +0800

add distributed

commit 9733f81546b902c769e922011e86a562aaebc8aa

author: zhangyan <[email protected]

.github

.com>

date: wed jan 24

10:54:06

2018 +0800

wrote a readme file

如果嫌輸出資訊太多,我們可以加引數檢視:

$ git log

--pretty=oneline

$ git reset --hard head^

head is now at

6a8ab3a add distributed

在git中,用head表示當前版本,上乙個版本就是head^,上上乙個版本就是head^^。

然後我們檢視一下readme.txt檔案的內容是不是add distributed:

$ cat readme.txt

git is a distributed version control system.

git is a free software.

但是如果找不到版本號怎麼辦,git提供了乙個git reflog來記錄每一次的命令版本號:

$ git reflog

f1c6504 head@: reset: moving to f1c6504

6a8ab3a head@: reset: moving to head^

6a8ab3a head@: commit: add distributed

9733f81 head@: commit (initial): wrote a readme file

Git系列2 版本庫 Repository

什麼是版本庫呢?版本庫又名倉庫,英文名repository,你可以簡單理解成乙個目錄,這個目錄裡面的所有檔案都可以被git管理起來,每個檔案的修改 刪除,git都能跟蹤,以便任何時刻都可以追蹤歷史,或者在將來某個時刻可以 還原 我們先要確定要把哪個資料夾裡的檔案進行管理.比如說我桌面上的乙個叫git...

Git學習筆記2 版本控制

1.版本回退 head 當前指標 head 表示向上一層 head n 表示向上n層 git reset hard head 返回到上乙個版本 git reset hard 94bf 返回到指定版本,94bf是指定版本的id穿梭前,用git log可以檢視提交歷史,以便確定要回退到哪個版本。要重返未...

Git的使用 1 版本庫

git作為乙個分布式版本控制系統,其優點是不需要一直連線遠端版本庫就可以使用。故其為實現分布版本控制專門設計了一整套的儲存區間和語句,用來實現。1 本地版本庫 建立在本機磁碟上的資料夾 git 1 通過推送語句語句將本地版本庫完整的上傳 替換遠端版本倉庫中的 2 通過檢出語句建立 切換工作區的分支。...