二、Git基本操作
git init 在目錄中建立新的 Git倉庫
git add 將該檔案新增到快取。
git commit將快取區內容新增到倉庫中。
git status 檢視專案的當前狀態。
git diff 顯示已寫入快取與已修改但尚未寫入快取的改動的區別。
git reset HEAD 命令用於取消已快取的內容。
git checkout – file丟棄工作區的修改
git rm將檔案從快取區和你的硬碟中(工作目錄)刪除
git mv重新命名磁碟上的檔案
建立版本庫
建立版本庫之前首先要有一個工作區,工作區即為電腦中所能看到的目錄。工作區有一個隱藏目錄.git,這個不算工作區,是Git的版本庫。裡面有暫存區,還有
一:選擇一個合適的地方,建立一個空目錄(方法與linux相同):
$ mkdir learngit
$ cd learngit
二:初始化一個Git倉庫,使用git init命令。
三:新增檔案到Git倉庫,分兩步:
第一步,使用命令git add <file>,注意,可反覆多次使用,新增多個檔案;實際是把修改的檔案新增到暫存區
第二步,使用命令git commit,把檔案提交到倉庫,即當前分支,完成。
git commit –a (提交所有本地修改)
git commit –m “deleted 1 line”
切記在提交時前要git add開始跟蹤檔案,否則不能commit成功,因為每次修改如果不add到暫存區,那就不會加入到commit中。
月光寶盒穿梭
一、檢視當前工作區狀態,有沒有進行修改git status
可以加入引數git status –s檢視簡簡訊息
如果在克隆倉庫之後立即執行此命令,會看到類似這樣的輸出:
這說明你現在的工作目錄相當乾淨。換句話說,所有已跟蹤檔案在上次提交後都未被更改過。此外,上面的資訊還表明,當前目錄下沒有出現任何處於未跟蹤的新檔案,否則 Git會在這裡列出來。 master這是預設的分支名稱。
二、 如果git status
·尚未快取的改動:git diff
·檢視已快取的改動: git diff --cached
·檢視已快取的與未快取的所有改動:git diff HEAD
·顯示摘要而非整個 diff:git diff --stat
三、修改與提交新檔案步驟是一樣的,git add --->git commit
四、檢視提交歷史,以確定要回退到哪個版本git log
也可以通過新增引數來檢視簡潔的日誌資訊git log-–pretty=oneline
五、歷史與未來穿梭
在git中用HEAD表示當前版本,上一個版本就是HEAD^,上上一個版本就是HEAD^^,當然往上100個版本寫100個^比較容易數不過來,所以寫成HEAD~100。例如現在有1、2、3三個版本,3是最新的。
要從3回退到上一個版本2:git reset--hard HEAD^
從2再回到之後的版本3:git reset –hard*****(3的commit ID號前幾位便可)
如果不記得3版本的ID號可以通過git reflog檢視命令歷史,或者通過git log檢視,找到其ID號
六、撤銷修改;
(1)丟棄工作區的修改git checkout – file
一種是readme.txt自修改後還沒有被放到暫存區,現在,撤銷修改就回到和版本庫一模一樣的狀態;
一種是readme.txt已經新增到暫存區後,又作了修改,現在,撤銷修改就回到新增到暫存區後的狀態。
總之,就是讓這個檔案回到最近一次git commit或git add時的狀態。
(2)已經git add但沒有commit,即已經放入暫存區。
撤銷掉暫存區的修改,重新放回工作區:git resetHEAD file然後再執行上一步。
七、刪除檔案;
(1)rm file或者直接手動在檔案管理器中刪除
(2)從版本庫中刪除該檔案git rm file然後git commit
git rm file 會將檔案從快取區和你的硬碟中(工作目錄)刪除。
如果你要在工作目錄中留著該檔案,可以使用git rm --cached
(3)刪錯,但版本庫裡有,把誤刪檔案恢復到最新版本git checkout –file
(4)git mv命令做得所有事情就是git rm--cached 命令的操作, 重新命名磁碟上的檔案,然後再執行 git add 把新檔案新增到快取區。
$ git mv README README.md
$ ls
README.md