Git 常用命令

2021-06-26 01:58:23 字數 4719 閱讀 2989

1、聰明的程式設計師都喜歡偷懶,so我們在home目錄新增乙個全域性配置檔案:.gitconfig,並定義快捷鍵:

[alias]  

co = checkout  

ci = commit  

st = status  

pl = pull  

ps = push  

dt = difftool  

l = log --stat  

cp = cherry-pick  

ca = commit -a  

b = branch

2、now,開始解釋常用命令。

檢視、新增、提交、刪除、找回,重置修改檔案

git help # 顯示command的help

git show # 顯示某次提交的內容 git show $id

git co -- # 拋棄工作區修改

git co . # 拋棄工作區修改

git add # 將工作檔案修改提交到本地暫存區

git add . # 將所有修改過的工作檔案提交暫存區

git rm # 從版本庫中刪除檔案

git rm --cached # 從版本庫中刪除檔案,但不刪除檔案

git reset # 從暫存區恢復到工作檔案

git reset -- . # 從暫存區恢復到工作檔案

git reset --hard # 恢復最近一次提交過的狀態,即放棄上次提交後的所有本次修改

git ci git ci . git ci -a # 將git add, git rm和git ci等操作都合併在一起做:tgit ci -am "some comments"

git ci --amend # 修改最後一次提交記錄

git revert <$id> # 恢復某次提交的狀態,恢復動作本身也建立次提交物件

git revert head # 恢復最後一次提交的狀態

檢視檔案diff

git diff # 比較當前檔案和暫存區檔案差異 git diff

git diff <$id1> <$id2> # 比較兩次提交之間的差異

git diff

..# 在兩個分支之間比較

git diff --staged # 比較暫存區和版本庫差異

git diff --cached # 比較暫存區和版本庫差異

git diff --stat # 僅僅比較統計資訊

檢視提交記錄

git log git log # 檢視該檔案每次提交記錄

git log -p # 檢視每次詳細修改內容的diff

git log -p -2 # 檢視最近兩次詳細修改內容的diff

git log --stat #檢視提交統計資訊

tig

mac上可以使用tig代替diff和log,brew install tig

git 本地分支管理

檢視、切換、建立和刪除分支

git br -r # 檢視遠端分支

git br # 建立新的分支

git br -v # 檢視各個分支最後提交資訊

git br --merged # 檢視已經被合併到當前分支的分支

git br --no-merged # 檢視尚未被合併到當前分支的分支

git co

# 切換到某個分支

git co -b # 建立新的分支,並且切換過去

git co -b

# 基於branch建立新的new_branch

git co $id # 把某次歷史提交記錄checkout出來,但無分支資訊,切換到其他分支會自動刪除

git co $id -b # 把某次歷史提交記錄checkout出來,建立成乙個分支

git br -d

# 刪除某個分支

git br -d

# 強制刪除某個分支 (未被合併的分支被刪除的時候需要強制)

分支合併和rebase

git merge

# 將branch分支合併到當前分支

git merge origin/master --no-ff # 不要fast-foward合併,這樣可以生成merge提交

git rebase master

# 將master rebase到branch,相當於: git co

&& git rebase master && git co master && git merge

git補丁管理(方便在多台機器上開發同步時用)

git diff > ../sync.patch # 生成補丁

git暫存管理

git stash # 暫存

git stash list # 列所有stash

git stash drop # 刪除暫存區

git遠端分支管理

git pull # 抓取遠端倉庫所有分支更新並合併到本地

git pull --no-ff # 抓取遠端倉庫所有分支更新並合併到本地,不要快進合併

git fetch origin # 抓取遠端倉庫更新

git merge origin/master # 將遠端主分支合併到本地當前分支

git co --track origin/branch # 跟蹤某個遠端分支建立相應的本地分支

git co -b origin/# 基於遠端分支建立本地分支,功能同上

git push # push所有分支

git push origin master # 將本地主分支推到遠端主分支

git push -u origin master # 將本地主分支推到遠端(如無遠端主分支則建立,用於初始化遠端倉庫)

git push origin # 建立遠端分支, origin是遠端倉庫名

git push origin :# 建立遠端分支

git push origin :#先刪除本地分支(git br -d

),然後再push刪除遠端分支

git遠端倉庫管理

git remote -v # 檢視遠端伺服器位址和倉庫名稱

git remote show origin # 檢視遠端伺服器倉庫狀態

git remote add origin git@ github:robbin/robbin_site.git # 新增遠端倉庫位址

git remote set-url origin git@ github.com:robbin/robbin_site.git # 設定遠端倉庫位址(用於修改遠端倉庫位址) git remote rm # 刪除遠端倉庫

建立遠端倉庫

git clone --bare robbin_site robbin_site.git # 用帶版本的專案建立純版本倉庫

scp -r my_project.git git@ git.csdn.net:~ # 將純倉庫上傳到伺服器上

mkdir robbin_site.git && cd robbin_site.git && git --bare init # 在伺服器建立純倉庫

git remote add origin git@ github.com:robbin/robbin_site.git # 設定遠端倉庫位址

git push -u origin master # 客戶端首次提交

git push -u origin develop # 首次將本地develop分支提交到遠端develop分支,並且track

git remote set-head origin master # 設定遠端倉庫的head指向master分支

也可以命令設定跟蹤遠端庫和本地庫

git branch --set-upstream master origin/master

git branch --set-upstream develop origin/develop

刪除行尾、行首空格

行末:$ 

行首:^

空格:\s

行末空格:\s\+$

行首空格:^\+\s

有些人認為行末的空格是無用,浪費而難看的。要刪除這些每行後面多餘的空格,可以

執行如下命令:

:%s/\s\+$//

命令前面指明範圍是 "%",所以這會作用於整個檔案。"substitute" 命令的匹配模式是

"\s\+$"。這表示行末($)前的乙個或者多個(\+)空格(\s)。後面我們會介紹怎樣

寫這樣的模式。

替換命令的 "to" 部分是空的:"//"。這樣就會刪除那些匹配的空白字元。

另一種沒有用的空格是 tab 前面的字元。通常這可以刪除而不影響格式。但並不是總這

樣!所以,你最好手工刪除它。執行如下命令: /

你什麼都看不見,其實這是乙個空格加乙個 tab 鍵。相當於 "/"。現在,

你可以用 "x" 刪除多餘的空格,並保證格式沒有改變。接著你可以用 "n" 找到下乙個

位置並重複這個操作。

常用命令 Git 常用命令大全

安裝教程可參照 廖雪峰老師的安裝教程。git config 在git中,使用git config 命令來配置 git 的配置檔案,git配置級別主要有3類 1 倉庫級別 local 本地 git 倉庫級別配置檔案,作用於當前倉庫。優先順序最高 2 使用者級別 global,全域性配置檔案,作用於所有...

git 常用命令

檢視是否存在檔案需要上傳 git status git add git commit m 建立遠端倉庫 git remote add origin 116.255.146.153 ruby cd work daily project.git 更新git fetch 116.255.146.153 r...

git常用命令

詳細 1,git log p 命令來顯示每一次提交與其父節點提交內容之間快照的差異。2,為了檢視載入 staged 而並未提交 not committed 的內容差異,可以使用 git diff stage 命令 在git 1.6之前的版本中,使用 cached 適應情形 在執行git commit...