建立或初始化倉庫
進入一個目錄下,執行命令
git init #創建一個空倉庫
在執行完該命令后,該文件夾會出現一個叫.git
的目錄。該目錄為隱藏目錄,用來記錄倉庫數據,不要隨意刪除
向倉庫添加文件,然后提交
向倉庫中提交文件需要分兩步進行:
add —> commit
git add file1.txt file2.txt #一次可以添加多個文件
git commit -m 'add two files'
若需要添加該目錄下的所有文件可執行
git add .
-m
后需要填寫提交文件的說明,該項為必須填寫的一項
查看倉庫文件的改動
若倉庫中文件修改后,可以使用git status
命令查看文件是否被修改
上圖可以看出有一個文件
index.html
被修改了,但是還沒提交修改。
如果需要具體查看該文件那些修改了那些內容,可使用命令git diff templates/index.html
這是就可以清楚看到文件中那些地方被修改了。
接下來就可以提交該文件,現在執行
git add templates/index.html
命令。在執行git commit
命令前,我們再看一下它的狀態。現在執行git status
意思是該文件正準備提交。接下來就可以放心提交了git commit -m '刪除了薦'
此時在查看一下創庫狀態
git status
版本回滾
版本在經過多次修改,commit后會出現多個版本。當我們需要回滾到之前某個版本時,需查看下該版本修改了那些內容需要執行git log
命令,查看版本迭代的記錄。
從上圖可以看出,我們有兩個版本,一個是第一次提交的版本,另一個是刪掉一個字后的版本。若以上輸出信息太多,不容易查看,可以使用
git log --pretty=oneline
使輸出更加簡潔。29233...
)是commit id
(版本號),是一個十六進制字。
看到日志后,現在就知道要回滾到哪一個版本了。在Git
中,使用HHAD
表示當前版本,上一個版本就是HEAD^
,上上個版本是HEAD^^
,上100個版本可以寫作HEAD~100
。假設我們準備回滾到刪除了薦
這個版本。使用命令git reset --hard HEAD^
^
會被當做換行符,導致報錯。可以寫成HEAD~1
如果又想回到原來的版本,此時可以使用git reset --hard f3c092a
,也就是使用commit id回滾到原來,commit id可以在歷史命令行中查看。commit id不用寫全,系統會自動補全查找。若歷史命令丟失,可以使用git reflog
查看歷史命令
工作區、暫存區和master分支
工作區就相當于當前目錄,暫存區就相當于是
.git
文件下的記錄。當執行git commit
后,才將暫存區的文件合并到master分支上。如果對工作區的文件進行修改后,想要放棄這些修改(僅僅放棄工作區文件的修改),可以自行以下命令
git checkout -- readme.txt
表示放棄工作區的修改,還原到最后一次add或commit的狀態。實際上該命令是使用版本庫中的文件覆蓋工作區的文件。
如果修改的文件已經add進了暫存區,這是需要現將暫存區的文件還原(清除)。使用命令
git reset HEAD readme.txt
然后再對工作區進行修改。
刪除文件
當我們將工作區的文件刪掉后,版本中的文件并沒有刪掉。需要我們執行刪除命令后,才會和工作區同步將文件刪除。
git rm test.txt #執行刪除命令
git commit -m '刪除test' #提交到版本庫
如果僅僅是誤把工作區的文件刪除了,只需要用版本庫中的文件覆蓋到工作區即好。
git checkout -- test.txt #將文件從版本庫中還原到工作區