這節例子的初始檔案:
其實checkout
最主要的用途並不是讓單個檔案回到過去, 我們之後會繼續講checkout
在分支branch
中的應用, 這一節主要講checkout
讓檔案回到過去
- gittut
- 1.py
- 2.py
我們僅僅要對1.py
進行回到過去操作, 回到c6762a1 change 1
這乙個commit
. 使用checkout
+ idc6762a1
+--
+ 檔案目錄
1.py
1.py
的指標head
放在這個時刻c6762a1
:
$ git log --oneline
# 輸出
904e1ba change 2
c6762a1 change 1
13be9a7 create 1.py
---------------------
$ git checkout c6762a1 -- 1.py
這時1.py
檔案的內容就變成了:
a = 1
我們在1.py
加上一行內容#i went back to change 1
然後add
並commit
1.py
:
$ git add 1.py
$ git commit -m "back to change 1 and add comment for 1.py"
$ git log --oneline
# 輸出
47f167e back to change 1 and add comment for 1.py
904e1ba change 2
c6762a1 change 1
13be9a7 create 1.py
可以看出, 不像reset
時那樣, 我們的change 2
並沒有消失, 但是1.py
卻已經回去了過去, 並改寫了未來. 回到從前 reset
有時候我們總會忘了什麼,比如已經提交了commit卻發現在這個commit中忘了附上另乙個檔案.接下來我們模擬這種情況.上節內容中,我們最後乙個commit是change 2,我們將要新增另外乙個檔案,將這個修改也commit進change 2.所以我們複製1.py這個檔案,改名為2.py.並把2....
能回到從前麼
年過了,坐了24個多小時的火車,來到了廣州,現在的我住在華農的好朋友那裡,此刻坐在乙個實驗室裡,很安靜。愛情被我挽救回來了,但是回頭看看這短短十餘天發生的事情,會讓人生出種後怕的感覺,如果專注在這個問題上,都會不由的收緊,這感覺我想每個人都有經歷過。不少人說我在這年頭辭職不明智,但是我並沒有想那麼多...
Git系列4 回到從前 reset
有時候我們總會忘了什麼,比如已經提交了commit卻發現在這個commit中忘了附上另乙個檔案.接下來我們模擬這種情況.上節內容中,我們最後乙個commit是change 2,我們將要新增另外乙個檔案,將這個修改也commit進change 2.所以我們複製1.py這個檔案,改名為2.py.並把2....