天天看點

一文詳解git版本建立與回退,程式猿居家旅行必備技能

作者:黑貓程式設計

什麼是程式猿?

程式猿是一種類猿人,擅長進行數字化資訊處理,一般被人類馴服後專門從事電腦程式設計方面工作。比機器更加智能,比正常人類需要更少的休息,不需要娛樂、不需要團建、不需要過年過節,一種介于猿和人之間的從事專門技術的生物統稱。

一文詳解git版本建立與回退,程式猿居家旅行必備技能

git工作原理

git是本地進行版本管理,github是将本地的程式推送到Github網站存儲。

一文詳解git版本建立與回退,程式猿居家旅行必備技能

git有四個區,工作區Workspace就是我們平時寫代碼的目錄;Index / Stage暫存區可以了解為當我們完成一個階段的任務後存儲一個快照,但是并沒有生成版本;Repository倉庫區是真正建立一個曆史版本,以後有需要可以随時回退;Remote遠端倉庫可以自己搭建也可以使用Github網站,将最終的版本推送上去,可以開源與所有程式員共享,也可以是私有倉庫,僅供團隊内部協同開發。

一文詳解git版本建立與回退,程式猿居家旅行必備技能

建立倉庫

首先建立一個目錄,cd切換到目錄,然後執行指令:git init 初始化:

一文詳解git版本建立與回退,程式猿居家旅行必備技能

當目錄中出現隐藏目錄.git時,表示建立git倉庫成功。.git檔案夾存儲目前項目的曆史版本和管理資料,每個git使用者都存儲完整的曆史版本,是以git是分布式的。

一文詳解git版本建立與回退,程式猿居家旅行必備技能

.git也叫做附屬于該倉庫的工作樹。

添加至暫存區

建立一個檔案 1.py ,然後寫入内容:

一文詳解git版本建立與回退,程式猿居家旅行必備技能

執行git add 檔案名将指定檔案添加至暫存區,git status顯示所有需要送出的檔案,1.py是建立的檔案,寫入一行代碼,就會顯示和之前的送出内容有差異(第一次之前沒有任何送出)。

一文詳解git版本建立與回退,程式猿居家旅行必備技能

commit生成曆史版本

git commit -m 備注,在Repository倉庫區建立曆史版本,git log檢視曆史版本:

一文詳解git版本建立與回退,程式猿居家旅行必備技能

繼續在檔案中添加一行“version2”,再次檢視就會出現兩個版本:

一文詳解git版本建立與回退,程式猿居家旅行必備技能

下面重複操作,生成3個版本,大家自己練習一下。

一文詳解git版本建立與回退,程式猿居家旅行必備技能

目前,都處于master主分支,HEAD就是一個來回移動的指針。

reset版本回退

目前我有三個版本,要回退到之前版本:

一文詳解git版本建立與回退,程式猿居家旅行必備技能

第1種 方案:git reset --hard 版本号(版本号取前幾位就可以,一般選擇前8位)回退到版本2:

一文詳解git版本建立與回退,程式猿居家旅行必備技能

git log發現,版本3的資訊沒有了,要用git reflog檢視操作記錄:

一文詳解git版本建立與回退,程式猿居家旅行必備技能

然後,相同方案再回到版本3。

一文詳解git版本建立與回退,程式猿居家旅行必備技能

第2種 方案:git reset --hard HEAD^(^的個數代表回退到之前哪個版本,隻能向之前的版本回退,比如現在在版本3,回退到版本1就是兩個^)

一文詳解git版本建立與回退,程式猿居家旅行必備技能

第3種 方案:git reset --hard HEAD~n(回到到前n個版本)

一文詳解git版本建立與回退,程式猿居家旅行必備技能

簡潔顯示和顯示差别

git log資訊簡潔顯示:

一文詳解git版本建立與回退,程式猿居家旅行必備技能

對比HEAD^(即上一個版本)和工作區中目前檔案版本不同:

一文詳解git版本建立與回退,程式猿居家旅行必備技能

對比HEAD目前版本和HEAD^^前兩個版本之間的不同:

一文詳解git版本建立與回退,程式猿居家旅行必備技能

撤銷修改

git管理的檔案的修改,它隻會送出暫存區的修改來建立版本。比如,我們在工作區增加version4,但是沒有add到暫存區,直接commit,發現并沒有更改的内容可以送出:

一文詳解git版本建立與回退,程式猿居家旅行必備技能

然後,git checkout -- 檔案名 撤銷修改:

一文詳解git版本建立與回退,程式猿居家旅行必備技能

但是,如果我現在已經add到暫存區,應該如何修改?

一文詳解git版本建立與回退,程式猿居家旅行必備技能

git reset HEAD 檔案名,撤銷暫存區修改,再撤銷工作區修改:

一文詳解git版本建立與回退,程式猿居家旅行必備技能

删除檔案

現在,我要删除1.py,但是後悔了,撤銷工作區修改,再找回來:

一文詳解git版本建立與回退,程式猿居家旅行必備技能

另一種是下定決心要删除,執行git rm 檔案名,如果忘記檔案名可以通過git status檢視:

一文詳解git版本建立與回退,程式猿居家旅行必備技能

然後不需要執行add,直接commit生成曆史版本:

一文詳解git版本建立與回退,程式猿居家旅行必備技能

相關推薦

  • 全球最大同性交友網站,github代碼版本管理
  • 一文帶你了解計算機網絡體架構,OSI模型和TCP/IP模型
  • Linux tmux終端複用器,遠端指令再也不會中斷了!
  • 三體劇版播出,原著黨表示“這回對味了”!

繼續閱讀