a)初始化操作
1 建立立一個工程 git init,添加兩個檔案 main.c readme.txt
2.
修改兩檔案
main.c readme.txt
git add . 快照
git commit -m “init version”
3. 修改main.c檔案,快照,提交
git add .
git commit -m "change main.c"
4. 建立分支,切換到分支
修改檔案 main.c
readme.txt
git add main.c readme.txt
git commit -m "branch change "
查看下當前日誌
b)發現問題
我們現在發現當前的版本有點問題,還不能提交到版本庫。
1.從git commit 中返回
切換到主分支
git reset --soft HEAD^
解釋一下,HEAD是當前分支的最新版本。^表示父節點。當前節點的父節點,就是上一次提交的版本。也就是標記
git status
發現恢複到了修改但是沒有提交的狀態
2.我們需要從git add中返回
再仔細查看之後,我們發現main.c真的寫錯了,需要返回到git add之前的狀態。
git reset -q main.c
3. 回到沒有做過的情況
git reset --hard(此過程無法復原,回到修改之前的狀態)
main.c 回到了初始的狀態
用gitk查看,確實回到了初始狀態
4. 直接回到某個版本
我們現在切換到bra分支。
git checkout bra
然後用gitk看一下。可以看出,我們之前的操作,對bra分支一點影響也沒有。現在我們需要把bra分支回複到初始狀態,但是當前的改動的代碼還是需要留著。我們可以看,init版本是目前的版本的父節點的父節點。我們可以這麼操作:
git reset --soft HEAD^^
HEAD^代表父節點,HEAD^^代表父節點的父節點
6.得到當前最新代碼
最後。我們把main.c和readme.txt都刪掉。我們需要從版本庫中取得當前最新的代碼。
很簡單:
git checkout master
如果是要bra分支的最新代碼,則:
git checkout banana