GIT入門之二:版本曆史/回溯

來源:互聯網
上載者:User

GIT的介紹就不多說了。這裡只是簡單的寫些入門的操作。

重點介紹曆史版本的查看和控制相關的操作。
一切從簡,不講大道理,只講簡單的操作。
原創文章,如有轉載,請註明出處:http://blog.csdn.net/yihui823/article/details/6681214

以銅為鏡,可以正衣冠;

以史為鏡,可以知興替;

以人為鏡,可以明得失

 

我們要以舊版本為鏡,可以知道自己的成長曆程

 

進入git控制的目錄,試試 gitk

(哇~有圖形了啊)

呵呵,別激動哦。

 

我們簡單的描述一個例子:a)初始化操作

有兩個檔案file1.txt和file2.txt

1, 初始化的時候就有這兩個檔案

操作:

git init

git status

git add .

git commit -m “init version”

2, 在master分支上修改了file1.txt,並提交

操作:

(修改file1.txt)

git add file1.txt

git commit -m “change file1”

3, 然後建立分支banana,並切換到banana分支上

操作:

git branch banana

git checkout banana

4, 修改file1.txt和file2.txt,並提交。

操作:

(修改file1.txt和file2.txt)

git add file1.txt file2.txt

git commit -m “change by banana”

這個時候,我們可以輸入 gitk,查看一下當前的版本情況。如:git-001

5, 然後,切換到master分支上,修改file2.txt,並提交。

操作:

git checkout master

(修改file2.txt)

git add file2.txt

git commit -m “change by master”

輸入gitk,查看目前的版本情況,如:git-002

 

b)發現問題需要查看曆史版本

我們現在發現當前的版本有點問題,還不能提交到版本庫。

1,我們需要從git commit中返回.

則輸入:

git reset --soft HEAD^

解釋一下,HEAD是當前分支的最新版本。^表示父節點。當前節點的父節點,就是上一次提交的版本。也就是標記為“change file1”的版本。

問為什麼不是”change by banana”這個版本呢?不同的分支哦。”change by banana”是banana分支的最新代碼,和master分支不同的。

這個時候輸入

git status

看看,是不是顯示file2.txt修改了沒有提交呢。

2,我們需要從git add中返回

再仔細查看之後,我們發現file2.txt真的寫錯了,需要返回到git add之前的狀態。

輸入:

git reset -q file2.txt

這個時候,file2.txt就回到瞭解放前了。用git status查看一下,file2.txt是”change not staged for commit”狀態。

3,回到沒有做過的情況

我們最終確定,最後一次修改的file2.txt是無用的代碼,我們需要廢棄掉。

注意,這個操作不能恢複的哦。

git reset --hard

這個命令,不能指定具體的檔案。是把當前的修改全部清除,恢複到最後一次提交的版本。

這個時候,用gitk查看一下:git-003

已經徹底回複到了“change file 1”的版本了。

4,直接回複到某個版本

我們現在切換到banana分支。

git checkout banana

然後用gitk看一下。可以看出,我們之前的操作,對banana分支一點影響也沒有。現在我們需要把banana分支回複到初始狀態,但是當前的改動的代碼還是需要留著。我們可以看,init版本是目前的版本的父節點的父節點。我們可以這麼操作:

git reset --soft HEAD^^

然後用gitk看一下:git-004

最近的版本已經變成了init version了。所有的改動都是add未提交狀態。

5,得到當前最新代碼

最後。我們把file1.txt和file2.txt都刪掉。我們需要從版本庫中取得當前最新的代碼。

很簡單:

git checkout master

如果是要banana分支的最新代碼,則:

git checkout banana

 

以上的操作,我們知道了如何查看版本分支,和如何回複到以前的版本。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.