學習**:
名詞解釋
工作區:本地倉庫,在電腦裡能看到的目錄
版本庫(repository):工作區有乙個隱藏目錄.git
,這個不算工作區,而是git的版本庫。
版本庫版本庫里存了很多東西,其中最重要的就是稱為stage
(或者叫index)的暫存區,還有git為我們自動建立的第乙個分支master
,以及指向master
的乙個指標叫head
。
三者關係圖
檔案傳遞
git add
把檔案新增進去,實際上就是把檔案修改新增到暫存區;
git commit
提交更改,實際上就是把暫存區的所有內容提交到當前分支master
git add readme.txt
git add license
//以上兩個語句可以合併成下面這一條語句
git commit -m "提交檔案"
當我們在工作區建立了兩個檔案:readme.txt
和license
,並且通過git add readme.txt
將readme.txt提交至暫存區,這時,我們用git status
檢視一下狀態:
git bash顯示readme.txt
被修改了,而license
還從來沒有被新增過,所以它的狀態是untracked
。
現在,再次使用命令git add
,把readme.txt
和license
都新增後,用git status
再檢視一下:
從上面我們可以看到license
這個檔案還沒有被commited
我們使用git commit
來將license
提交至版本庫的master分支上,用git status
再檢視一下:
git diff
是只比較比較工作區和暫存區(最後一次add)的區別
git diff --cached
是只比較暫存區和版本庫的區別
git diff head -- filename
是只比較工作區和版本庫(最後一次commit)的區別。
更直觀地如下圖所示:
場景1:當你改亂了工作區某個檔案的內容,想直接丟棄工作區的修改時,用命令git checkout -- file
。
場景2:當你不但改亂了工作區某個檔案的內容,還新增到了暫存區時(使用了git add
),想丟棄修改,分兩步,第一步用命令git reset head
,第二部用用命令git checkout -- file
。
場景3:已經提交了不合適的修改到版本庫時(使用了git commit
),想要撤銷本次提交(前提是沒有推送到遠端庫),先使用git log
命令檢視版本控制系統中的歷史記錄
如果只想顯示最近一條的資訊,可以加上--pretty=oneline
引數
其中git log
中顯示的第一行很長的十六進製制數字是commit id
如何回退?
在git中,用head
表示當前版本,也就是最新的提交1094adb…(注意我的提交id和你的肯定不一樣),上乙個版本就是head^
,上上乙個版本就是head^^
,往上100個版本可以寫成head~100
。
當使用回退後,想要回到回退前的版本時,可以用git reflog
檢視命令歷史,以便確定要回到未來的哪個版本。
head指標的作用:
當你要刪除檔案的時候,可以採用命令:rm test.txt
,刪除工作區(即電腦上)的檔案
這個時候(也就是說這個時候只執行了rm test.txt
)有兩種情況
git鼓勵大量使用分支,在分支上完成相應工作,add和commit之後,合併到主分支master
上
功能語句
1檢視分支
git branch
2建立分支
git branch
3切換分支
git checkout
4建立+切換分支
git checkout -b
5合併某分支到當前分支
git merge
6刪除分支
git branch -d
其中,語句4相當於語句2+語句3
Git 常用指令
首先需要建立乙個repo,這是cd到資料夾底下,然後init。git init 在檔案系統裡面的檔案如果不新增到git的repo裡面,不會自動被git辨識,需要手動新增,這也是初始化repo是必須要做的事。git add documentation txt git add git sh 刪除檔案,分...
git常用指令
git 常用命令 git init here 建立本地倉庫 repository 將會在資料夾下建立乙個 git 資料夾,git 資料夾裡儲存了所有的版本資訊 標記等內容 git remote add origin git github.com winter1991 helloworld.git 把...
git常用指令
git config global user.name robbin git config global user.email fankai gmail.com git config global color.ui true git config global alias.co checkout g...