一.版本庫建立與修改
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 通過檢出語句建立 切換工作區的分支。...