Git 從入門到精通(常用命令解析)(一)

2021-08-02 19:19:21 字數 3891 閱讀 3883

大學的時候就一直在用git了,不過直到現在公司才切git,所以,重新學習記錄下。

一,git add 命令。

$git add 《檔名》

//將檔案提交到本地倉庫。

$git add .

//他會監控工作區的狀態數,使用該命令會把工作時的所有變化提交到暫存區。包括modified以及new檔案。不包括被刪除的檔案。

$git add -u

//他僅監控以及被add的檔案(即tracked file),他會將被修改的檔案提交到暫存區。 不包括新檔案。(git add -update縮寫)

$git add -a

//是上面兩個命令的合集(git add -all的縮寫)

二,git commit

$git commit -m

"你的注釋"

//新增檔案到本地git倉庫

$git diff 《檔名》

//檢視具體修改了什麼內容

$git

log//檢視歷史提交記錄,以便確定要回退到哪個版本。

$git reflog //檢視歷史命令,以便確定要回到未來的哪個版本。

再git中,用head表示當前版本,上乙個版本是head^,上上個版本可以就是head^^。如果很多,可以寫head~100。

回退版本命令:git reset -hard head^

原理:git有工作區,暫存區,以及當前分支。並且git跟蹤管理的是修改,並非檔案。所以每次修改後,如果沒有add到暫存區,就不會加入到commit中。

git add,實際上就是把檔案修改新增到暫存區。

git commit 實際上就是把暫存區的所有內容提交到當前分支。

三,git checkout

git checkout可以用來切換分支,但是一般主要是撤銷修改。

git checkout - //其實就是用版本庫里的版本替換工作區的版本,無論工作區是修改還是刪除,都可以意見還原。
分兩種情況:

1,file自修改後還沒有放到暫存區,現在,撤銷修改就回到和版本庫一樣。

2,file修改後已經新增到暫存區,又做了修改。現在,撤銷修改就回到新增到暫存區後的狀態。

3,git reset head file 可以把暫存區的修改撤銷掉,重新放回工作區。

checkout檔案層面的操作:主要是對暫存區和工作區起作用,一般有暫存區覆蓋工作區的行為特徵。

reset檔案層面的操作:主要對暫存區起作用。

用check命令如果切換分支呢?

git checkout -b dev //建立分支dev 並切換到dev,相當於git branch dev,git checkout dev 兩條命令。

git checkout dev //切換分支到dev。

四,git push 詳解。

在使用git之前,你首先要關聯乙個遠端庫

$git remote add origin git@server-name:path/repo-name.git.

管理遠端倉庫後,就可以把本地**推送到遠端, 一般第一次提交可以使用

$git push -u origin master :第一次提交後後面可以省略「-u「。

$git push origin master :熟悉的命令

詳解 1,git push 命令用於將本地分支的更新,推送到遠端主機。

原始命令:git push 《遠端主機名》 《本地分支名》:《遠端分支名》

如果省略遠端分支名,則表示將本地分支推送與之存在「追蹤關係」的遠端分支(通常兩者同名)。

git push origin master:表示將本地的master分支推送到origin主機的master分支。如果後者不存在,則會建立。

如果省略本地分支名,則表示刪除指定的遠端分支,因為這等同於推送乙個空的本地分支到遠端分支。

如果當前分支與多個主機存在追蹤關係,則可以使用-u選項指定乙個預設主機,這樣後面就可以不加任何引數,使用git push。

五,git remote 詳解。

為了便於管理,git要求每個遠端主機都必須指定乙個主機名。

git remote用於管理主機名。

git remote :會列出所有遠端主機。

git remote -v:可以檢視遠端主機的**。

git remote show 《主機名》 :可以檢視該主機的詳細資訊。

git remote add 《主機名,也可以理解別名》 《**》:用於新增遠端主機。

git remote rm 《主機名》 :用於刪除遠端主機。

git remote rename 《原主機名》 《新主機名》 :用於遠端主機的改名。

在轉殖版本庫的時候,所使用的遠端主機會自動的被git命名為origin。如果想使用其他的主機名(包括新增主機名時)。

如果轉殖時想使用其他主機名,需要git clone命令 -o選項指定。

$git clone -o jquery 《位址》

$git remote

jquery//此時,遠端主機名為jquery

六,git fetch詳解。

一旦遠端主機的版本庫有了更新(git術語叫做commit),需要將這些更新取回本地,這時就要用到git fetch命令。

$git fetch 《遠端主機名》:表示將某個遠端主機的更新,全部取回本地。

預設情況下,git fetch取回所有分支(branch)的更新。如果只想取回特定分支的更新,可以指定分支名。

$git fetch 《遠端主機名》 《分支名》

$git fetch origin master:取回origin主機的master分支。

git fetch只是取回分支更新,但是沒有和本地分支合併。

$git merge origin/master 將遠端主機origin的更新合併本地master。

七,git pull詳解。

git pull 命令的作用是,取回遠端主機某個分支的更新,再與本地的指定分支合併,它的完整格式稍稍有點複雜。

$git pull 《遠端主機名》 《遠端分支名》:《本地分支名》

比如,取回origin主機的next分支,與本地的master分支合併,需要寫出下面這樣:

$git pull origin next:master

如果遠端分支是與當前分支合併,則冒號後面的部分可以省略。

$git pull origin next

上面的命令表示,取回origin/next 分支,再與當前分支合併。實質上,這等同於先做git fetch,在做git merge。

$git fetch origin

$git merge origin/next

在某些場合,git會自動在本地分支與遠端分支之間,建立一種追蹤關係(tracking)。 比如,在git clone的時候,所有本地分支預設與遠端主機的同名分支,建立追蹤關係,也就是說,本地的master分支自動追蹤origin/master分支。git也允許手動建立追蹤關係。

$git branch -set

-upstream master origin/next

上面命令指定master分支追蹤origin/next 分支。

如果當前分支與遠端分支存在追蹤關係,git pull就可以省略遠端分支名。

$git pull
上面命令表示,當前分支自動與唯一乙個追蹤分支進行合併。

如果合併需要採用rebase模式,可以使用-rebase選項。

git從入門到精通

因工作,需要給部門同事做乙個git培訓,以下是培訓記錄。基本概念 工作區 暫存區 本地版本庫 遠端倉庫 分支管理 master,develop,issue git clone 轉殖 git status 檢視git狀態,工作區,暫存區狀態 git pull 從遠端倉庫拉最新 git push 推送到...

git常用命令解析

git作為團體專案經常使用的工具,是嵌入式工程師必須掌握的。git branch a 檢視所有分支 git checkout tvi2309a zkt 切換當前分支到tvi2309a zkt git pull rk tvi2309a zkt 更新本地分支tvi2309a zkt git branch...

git常用命令解析

概念 工作區 working directory 將乙個資料夾通過git init設定成乙個git可以管理的資料夾 即 建立本地倉庫 時,這個資料夾裡的內容就是工作區。版本庫 repository 在工作區中,有乙個.git資料夾,這個.git資料夾就是版本庫。暫存區 stage index git...