最近從 0 學習Git,詳細分類總結了這份 Git 命令寶典

雖然以前學過 Git,不過用的比較少,不少原理也不是很清楚,因此最近是買了個視頻,靜下心來從零學習了下 Git,不過 Git 用來用去其實也就那幾個命令,今天這篇文章,我把那些命令都分類總結了一下(固然,是參考別人的分類的),這些總結大部分來自於我買的一個 Git 鼠標墊,主要是爲了之後本身忘記了方便查找。相信這份 Git 寶典,必定值得你收藏。git

1、Git 配置相關

若是你首次使用 Git,那剛開始首先是須要配置各類身份信息的,這樣當你提交相關任務的時候,別人才能知道這個 commit 是誰提交的。github

Git 最小配置

一、配置全局帳戶,也就是該帳戶對全部的 Git 倉庫都有效算法

git config --global user.name '你的帳戶名稱'
git config --global user.email '你的 Email'
複製代碼

二、配置局部帳戶,也就是該帳戶只對當前 Git 倉庫有效數據庫

git config --local user.name '你的帳戶名稱' 
git config --local user.email '你的 Email'
複製代碼

注意,不一樣點就是一個參數是 global(全局),一個是 local(本地)編程

三、查看相關配置狀況

配置了以後,顯然有時候是須要查看咱們當前配置的相關狀況的,可使用以下命令安全

一、查看 global 類型的配置狀況bash

git config --global --list
複製代碼

二、查看某個倉庫下的配置狀況微信

git config --local --list
複製代碼

2、本地基本操做

這部分命令有點多,也是使用的最頻繁的命令了,待我一一列舉出來,建議收藏網絡

一、基本操做

一、查看變動狀況app

git status
複製代碼

二、查看當前工做在哪一個分支上

git branch -v
複製代碼

三、切換到指定分支

git checkout 指定分支的名稱
複製代碼

四、把當前目錄及其子目錄下全部變動都加入到暫存區

git add . // 注意,add 後面是一個 '.'複製代碼

五、把倉庫內全部變動都假如到暫存區

git add -A

複製代碼

六、把指定文件添加到暫存區

git add 文件1 文件2 ... 文件n

複製代碼

七、建立正式的 commit,也就是把當前的數據提交上去

git commit

複製代碼

二、比較差別

一、比較某文件工做區和暫存區的差別

git diff 某文件

複製代碼

二、比較某文件暫存區和 HEAD 的差別

git diff --cache 某文件

複製代碼

三、比較工做區和暫存區的全部差別

git diff

複製代碼

四、比較暫存區和 HEAD 的全部差別

git diff --cache

複製代碼

三、暫存區與工做區之間回滾

一、把工做區指定文件恢復成和暫存區同樣

git checkout 文件1 文件2 ... 文件n

複製代碼

二、把暫存區指定文件回覆和 HEAD 同樣

git reset 文件1 文件2 ... 文件n

複製代碼

三、把暫存區和工做區全部文件恢復成和 HEAD 同樣

git reset --hard

複製代碼

四、用 difftool 比較任意兩個 commit 的差別

git difftool commit1 commit2

複製代碼

注意,從工做區回滾到暫存區則用 checkout ,不然用 reset

四、其餘

查看哪些文件沒有被 Git 管控

git ls-files --others

複製代碼

3、加塞臨時任務處理

一、把未處理完的變動先保存到 stash 中

git stash

複製代碼

二、臨時任務處理完後繼續以前的工做

git stash pop // pop 至關於棧的出棧和入棧同樣,把以前的任務彈出來
或者
git stash apply // 和 pop 不一樣的是, apply 至關於從棧頂把任務取出來,可是不過從棧中把任務移除

複製代碼

三、查看全部的 stash

git stash list

複製代碼

四、取回某次 stash 的變動

git stash pop stash @{數字n}

複製代碼

4、修改我的分支歷史

咱們的倉庫的內容每次變動執行 commit 的時候,都會生成一個新的 commit,不過有時候,咱們不想產生新的 commit,而是想要經過修改以前的 commit 來變動倉庫的內容,那麼就可使用以下命令了

一、修改最後一次 commit

一、在工做區中修改文件
二、git add
三、git commit --amend

複製代碼

2|、修改中間的 commit(假設代號爲 X)

1. git rebase -i X前面的一個 commit 的 id
2. 在工做區修改文件
3. git add
4. git rebase --contiue 

複製代碼

5、查看變動日誌等

一、當前分支各個 commit 用一行顯示

git log --online

複製代碼

二、顯示最近的 n 個 commit

git log -n

複製代碼

三、用圖示顯示全部的分支歷史

git log --online --graph --all

複製代碼

四、查看涉及到某文件變動的全部 commit

git log 某文件

複製代碼

五、某文件各行最後修改對應的 commit 以及做者

git blame 某文件

複製代碼

6、分支與標籤

一、建立新分支

基於當前分支建立新分支

git branch 新分支

複製代碼

基於指定分支建立新分支

git branch 新分支 已有分支

複製代碼

基於某個 commit 建立分支

git branch 新分支 某個 commit 的id

複製代碼

建立分支而且切換到該分支

git chechout -b 新分支

複製代碼

二、列出分支

列出本地分支

git branch -v

複製代碼

列出本地和遠端分支

git branch -av

複製代碼

列出遠端全部分支

git branch -rv

複製代碼

列出名稱符號某樣式的遠端分支

git branch -rv -l '某樣式'

複製代碼

三、刪除分支

安全刪除本地某分支

git branch -d 要刪除的分支

複製代碼

強行刪除本地分支

git branch -D 要刪除的分支

複製代碼

刪除已合併到 master 分支的全部本地分支

git branch --merged master | grep -v '^\*\| master' | xargs -n 1 git branch -d

複製代碼

刪除遠端 origin 已不存在的全部本地分支

git remote prune origin

複製代碼

四、打標籤

從 commit 打上標籤

git tag 標籤名 commit 的id

複製代碼

7、兩分支之間的集成

一、把 A 分支合入到當前分支,且爲 merge 建立 commit

git merge A分支

複製代碼

二、把 A 分支合入到 B 分支,且爲 Merge 建立 commit

git merge A分支 B分支 

複製代碼

三、把當前分支基於B分支作 rebase,以便把B分支合入到當前分支

git rebase B分支

複製代碼

四、把A分支基於B分支作rebase,以便把B分支合入到A分支

git rebase B分支 A分支

複製代碼

五、用 mergetool 解決衝突

git mergetool

複製代碼

8、和遠端交互

一、列出全部 remote

git remote -v

複製代碼

二、增長 remote

git remote add url地址

複製代碼

三、刪除 remote

git remote remove remote的名稱

複製代碼

四、改變 remote 的name

git remote rename 舊名稱 新名稱

複製代碼

五、把遠端全部分支和標籤的變動都拉到本地

git fetch remote

複製代碼

六、把遠端分支的變動拉倒本地,且 merge 到本地分支

git pull remote名稱 分支名

複製代碼

關於 pull 和 fetch 的區別不懂能夠看這篇文章從0學習Git:詳解git pull和git fetch的區別

七、把本地分支 push 到遠端

git push remote名稱 分支名

複製代碼

八、刪除遠端分支

git push remote --delete 遠端分支名
或者
git push remote:遠端分支名

複製代碼

九、向遠端提交指定標籤

git push remote 標籤名

複製代碼

十、向遠端提交全部標籤

git push remote --tags

複製代碼

總結

若是把這些命令掌握了,那麼 git 就順手拈來了,不過不少命令是比較容易忘的,全部仍是比較須要一份 git 手冊,之後用到的時候多查幾回,多用幾回命令,相信就可以記住了。

不過單單會命令不知道原理的話仍是不大行,至於原理,能夠經過網上找文章慢慢了解,固然,若是有須要,我後面也會分享 git 的一些原理,讓你們從本質上讀懂 git。

有收穫?但願老鐵們來個三連擊,給更多的人看到這篇文章

一、給俺點個讚唄,可讓更多的人看到這篇文章,順便激勵下我,嘻嘻。

二、老鐵們,關注個人原創微信公衆號「帥地玩編程」,專一於寫算法 + 計算機基礎知識(計算機網絡+ 操做系統+數據庫+Linux),保存讓你看完有所收穫,不信你打我。後臺回覆『電子書』送你一份精選電子書大禮包,包含各種技能的優質電子書。。

另外,我正在整理一份計算機類書單,只爲讓你們更加方便找到本身想要的書籍,目前已經收集了幾百本了,貢獻給須要的人,目前是整理到了 github 上,方便更新,地址:github.com/iamshuaidi/…

截圖了部分目錄以下:

在這裏插入圖片描述

更多算法 + 計算機基礎知識(計算機網絡+ 操做系統+數據庫+Linux等)文章,歡迎更多個人微信公衆號哦

相關文章
相關標籤/搜索