Git學習使用(三) 版本控制

2021-07-26 18:42:27 字數 3076 閱讀 8596

首先,要學會使用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 addgit 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可以檢視提交歷史,以便確定要回退到哪個版本。要重返未...