「入門必備」GIT必須知道的命令

GIT必備

學GIT一定要牢記下圖以及箭頭所示命令執行結果

箭頭的起點標識執行命令後數據的來源,箭頭的終點表示命令執行後的數據目的地

「入門必備」GIT必須知道的命令

GIT必備圖

首先要明白這幾個概念

  • Workspace:工作區
  • Index / Stage:暫存區
  • Repository:倉庫區(或本地倉庫)
  • Remote:遠程倉庫

簡要介紹上述常用命令: 黑色字體為我工作中常用的命令,其他也都是必須要知道的和了解的

場景1、當我們剛安裝GIT我們需要如下操作

1、clone 從GIT遠程服務器下載源代碼到本地倉庫

2、checkout 切分支。下載完代碼,我們可能在master分支,需要基於master切一個新分支。到工作區

3、add 我們在新分支的創建,修改 需要加到暫存區 index

4、commit 將我們剛剛加到暫存區的代碼,提交到本地倉庫

5、push 將我們本地倉庫的提交,推送到遠程服務器

場景2、開發中發現服務端有其他同學提交的代碼,怎麼辦

1、pull 從服務端拉取最新代碼到本地工作區

以上是對上圖的常見操作,但是工作中還有更多的命令需要我們掌握,接下來詳細介紹

一、工作區的文件

提交到暫存區

1、git add [文件名1] [文件名2] ... 添加指定文件

2、git add . 一次性添加所有工作區文件到暫存區

3、 git rm [文件名1] [文件名] ... 刪除工作區文件,並且將這次刪除放入暫存區

二、提交,將暫存區的文件,提交到本地倉庫

message是提交說明

1、git commit -m [提交信息] 提交暫存區到倉庫區

2、git commit [文件名1] [文件名2] ... -m [提交信息] 提交暫存區的指定文件到倉庫區

3、 git commit -am [提交信息] 提交工作區自上次commit之後的變化,直接到倉庫區,比較常用 節省了加入暫存區的過程

三、分支操作

1、git branch 列出本地所有分支

2、git branch -r 列出遠程所有分支

3、git branch -a 列出本地和遠程所有分支

4、 git branch [分支名] 新建一個分支,但依然停留在當前分支

5 、git checkout -b [分支名] 新建一個分支,並切換到該分支 branch-name為新建的分支名稱

6、 git checkout [分支名] 切換到指定分支

7、 git checkout - 切換到上一個分支

8、 git branch -d [分支名

] 刪除本地分支 不能刪除當前所在分支,需要切換到其他分支時使用

9、git push origin --delete [分支名] 刪除遠程分支

10、git merge [分支名] 合併指定分支到當前分支 一般都是將master合併到當前分支

分支切換利器,我們經常會遇到,正在一個分支上開發,寫了很多東西,其中提交了一部分,一部分正在寫,還沒寫完,這時突然來個線上問題,需要我們切換到線上分支去處理,我們怎麼辦,提交?還沒寫完,還不能通過編譯,不提交,放棄?更不可能 辛苦工作一天了。這時就需要下面這個命令,特別長用

git stash 暫時將未提交的變化暫存,形成類似一個快照,然後就可以隨意切換到其他分支了。

git stash pop 當在其他分支解決完問題,切換到當前分支,執行該命令,之前的暫存快照又恢復了,可以繼續工作了

四、撤銷操作

我們會經常遇到寫完的代碼,或者提交的代碼需要回滾,也就是撤銷或者回退到某個狀態,這個就是考驗GIT熟悉程度了。GIT出錯最多的時候就是merge 和撤銷。這裡要多下點功夫,否則和沒用過GIT也沒什麼區別

1、恢復暫存區的指定文件到工作區(將工作區修改的內容,恢復和暫存區一樣),比如你剛剛修改了某個文件,還沒有add操作,想放棄修改,但是改的太零散那就是用如下命令。

git checkout [文件名] 恢復指定文件

git checkout . 恢復全部文件

2、重置文件到指定commit,有多種狀態,注意區分

git checkout [某次提交的hash值] [文件名] 恢復某個commit的指定文件到暫存區和工作區

git reset --hard 重置暫存區與工作區,與上一次commit保持一致

git reset [commit] 重置當前分支的指針為指定commit,同時重置暫存區,但工作區不變

git reset --hard [commit] 重置當前分支的HEAD為指定commit,同時重置暫存區和工作區,與指定commit一致

git reset --keep [commit] 重置當前HEAD為指定commit,但保持暫存區和工作區不變

3、一個比較特殊的重置,以新的提交來覆蓋,需要仔細思考,對比和reset的區別

git revert [commit] 新建一個commit,用來撤銷指定commit 後面的所有變化都將被抵消,並且應用到當前分支

五、其他查看命令

git status 顯示有變更的文件,以及當前所處分支

git log 顯示當前分支的版本歷史

git log --stat 顯示commit歷史,以及每次commit發生變更的文件

git log -S [關鍵詞] 搜索提交歷史,根據關鍵詞

git diff 對比文件修改了哪些內容

git diff HEAD 顯示工作區與當前分支最新commit之間的差異

好了這是我常用的GIT命令,如有不足 多多指出。


分享到:


相關文章: