Git常用指令

2021-09-17 01:52:04 字數 3228 閱讀 3401

學習**:

名詞解釋

工作區:本地倉庫,在電腦裡能看到的目錄

版本庫(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.txtlicense,並且通過git add readme.txt將readme.txt提交至暫存區,這時,我們用git status檢視一下狀態:

git bash顯示readme.txt被修改了,而license還從來沒有被新增過,所以它的狀態是untracked

現在,再次使用命令git add,把readme.txtlicense都新增後,用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...