首先,要學會使用git status
檢視git倉庫的狀態。
我們先更改readme.txt檔案為
git is a distributed version control system.
git is free software.
接下來執行git status
$git status
位於分支 master
尚未暫存以備提交的變更:
(使用 "git add 《檔案》..." 更新要提交的內容)
(使用 "git checkout -- 《檔案》..." 丟棄工作區的改動)
修改: readme.txt
修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
git 會告訴我們現在倉庫的狀態,以及我們應該怎麼做。
已經知道readme.txt檔案發生了改變,我們也要知道如何檢視檔案更改的部分,這就要用到git diff
,顧名思義就是要檢視不同。
$git diff readme.txt
diff --git a/readme.txt b/readme.txt
index f7249b8..d225882 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,2 +1,2 @@
-git is a version control system
+git is a destributed version control system
git is free software
我們同樣還是先修改readme.txt檔案
git is a distributed version control system.
git is free software distributed under the gpl.
然後使用我們之前說過的git add
和git commit -m ' '
方法進行提交。
現在,回顧一下我們提交過的readme.txt檔案:
版本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 27aac89313fd6ce2bb0910290c77bb6269037dd6
author: k****a .com>
date: thu feb 9
07:15:13
2017 -0500
commit 3304e0b2ad9c9341659f6d61085fdcefebffe693
author: k****a .com>
date: thu feb 9
07:14:22
2017 -0500
add distributed
commit fb57c123ecf755a68c35e1bee187304b5dcb4676
author: k****a .com>
date: thu feb 9
07:13:22
2017 -0500
wrote a readme file
上面的資訊中以commit打頭的那行就是那個版本的版本號(commit id),它是一串sha1的數值,是我們版本切換需要使用的東西,但不需要完全記下了,只需要開頭的幾個字元,git就會自己去匹配了。接下來的資訊就是作者和時間了,最後是我們在提交版本時寫的注釋資訊。
那該如何運用以上資訊進行版本切換呢?
git提供了git reset
命令,在git中用head代表當前版本,head^就代表上個版本,head^^就是上上個版本,如果想表達上50個版本可以使用head~50來表示。
$git reset --hard head^
head 現在位於 3304e0b add distributed
我們發現版本移動到了3304e0b,不過再檢視一些git log
發現只剩下兩個版本了。如果你之前的視窗沒有關,那就可以使用以下這種方式返回:
$git
reset --hard 27aac
這樣我們就找回了之前的版本,但是如果視窗關了,那也有辦法!
使用git reflog可以檢視每次進行版本更新的命令,包含sha1的一部分,足夠我們進行版本恢復了!
ⅰ.git checkout -- file
可以丟棄工作區的修改
ⅱ.如果已經add
到了暫存區:用命令git reset head file
可以把暫存區的修改撤銷掉(unstage),重新放回工作區
ⅲ.刪除檔案,用命令git rm file
刪掉,並且git commit
提交版本。要是錯誤刪除可以使用git checkout -- file
恢復。
注:git checkout
其實是用版本庫里的版本替換工作區的版本,無論工作區是修改還是刪除,都可以「一鍵還原」。
Git學習01 版本控制
版本控制是一種記錄乙個或若干檔案內容變化,以便將來查閱特定版本修訂情況的系統。主要可以分為以下三類 1.1 本地版本控制系統 許多人習慣用複製整個專案目錄的方式來儲存不同的版本,或許還會改名加上備份時間以示區別。這麼做唯一的好處就是簡單。不過壞處也不少 有時候會混淆所在的工作目錄,一旦弄錯檔案丟了資...
氣泡排序 (三版本)
氣泡排序可能是很多人接觸到的第一種排序方法,最值會不斷的 浮 到區間右端。第乙個版本 void bubble sort int a,int n 第二個版本 void bubble sort opt1 int a,int n 已經公升序的序列,掃瞄過一遍後就停止 if swaped false bre...
Git學習筆記2 版本控制
1.版本回退 head 當前指標 head 表示向上一層 head n 表示向上n層 git reset hard head 返回到上乙個版本 git reset hard 94bf 返回到指定版本,94bf是指定版本的id穿梭前,用git log可以檢視提交歷史,以便確定要回退到哪個版本。要重返未...