Git常用命令整理

  • 2019 年 10 月 9 日
  • 筆記

一、Git 常用命令整理

命令 簡要說明

git branch 查看本地所有分支

git status 查看當前狀態

git commit 提交

git branch -a 查看所有的分支

git branch -r 查看遠程所有分支

git commit -am "init"提交並且加註釋

git remote add origin git地址

git push origin master將文件給推到伺服器上

git remote show origin顯示遠程庫origin里的資源

git push origin master:master

git push origin master:master將本地庫與伺服器上的庫進行關聯

git checkout --track origin/dev切換到遠程dev分支

git branch -D master develop 刪除本地庫develop

git checkout -b dev建立一個新的本地分支dev

git merge origin/dev將分支dev與當前分支進行合併

git checkout dev切換到本地dev分支

git remote show查看遠程庫

git add .添加至暫存區

git rm 文件名(包括路徑) 從git中刪除指定文件

git clone git://github.com/schacon/grit.git從伺服器上將程式碼給拉下來

git config --list看所有用戶

git ls-files看已經被提交的

git rm [file name] 刪除一個文件

git commit -a提交當前repos的所有的改變

git add [file name]添加一個文件到 git index

git commit -v當你用-v參數的時候可以看commit的差異

git commit -m "This is the message describing the commit"添加commit資訊

git commit -a-a是代表add,把所有的change加到git index里然後再commit

git commit -a -v一般提交命令

git log看你commit的日誌

git diff查看尚未暫存的更新

git rm a.a移除文件(從暫存區和工作區中刪除)

git rm --cached a.a移除文件(只從暫存區中刪除)

git commit -m "remove"移除文件(從git中刪除)

git rm -f a.a強行移除修改後文件(從暫存區和工作區中刪除)

git diff --cached 或 $ git diff --staged查看尚未提交的更新

git stash push將文件給push到一個臨時空間中

git stash pop將文件從臨時空間pop下來

———————————————————

git remote add origin git@github.***/***.git

git push origin master將本地項目給提交到伺服器中

———————————————————–

git pull本地與伺服器端同步

—————————————————————–

git push(遠程倉庫名) (分支名) 將本地分支推送到伺服器上去。

git push origin master:one

——————————————————————

git fetch相當於是從遠程獲取最新版本到本地,不會自動merge

git commit -a -m "message"(-a是提交所有改動,-m是加入log資訊) 本地修改同步至伺服器端 :

git branch branch_0.1 master從主分支master創建branch_0.1分支

git branch -m branch_0.1 branch_1.0將branch_0.1重命名為branch_1.0

git checkout branch_1.0/master切換到branch_1.0/master分支

git branch刪除遠程branch

git push origin **:**branch_remote_name

git branch -r -d branch_remote_name

———————————————————–

初始化版本庫,並提交到遠程伺服器端
  mkdir git_project    cd git_project

git init本地初始化

  touch README

git add README添加文件

git commit -m 'first commit'

git remote add origin URL地址增加一個遠程伺服器端

上面的命令會增加URL地址為 ‘URL地址’,名稱為origin的遠程伺服器庫,以後提交程式碼的時候只需要使用 origin別名即可


1、常用的Git命令

git add–interactive互動式添加

git apply應用修補程式

git am應用郵件格式修補程式

git annotate同義詞,等同於 git blame

git archive文件歸檔打包

git bisect二分查找

git blame文件逐行追溯

git branch分支管理

git cat-file版本庫對象研究工具

git checkout檢出到工作區、切換或創建分支

git cherry-pick提交揀選

git citool圖形化提交,相當於 git gui 命令

git clean清除工作區未跟蹤文件

git clone克隆版本庫

git commit提交

git config查詢和修改配置

git describe通過里程碑直觀地顯示提交ID

git diff差異比較

git difftool調用圖形化差異比較工具

git fetch獲取遠程版本庫的提交

git format-patch創建郵件格式的修補程式文件。參見 git am 命令

git grep文件內容搜索定位工具

git gui基於Tcl/Tk的圖形化工具,側重提交等操作

git help幫助

git init版本庫初始化

git init-db同義詞,等同於git init

git log顯示提交日誌

git merge分支合併

git mergetool圖形化衝突解決

git mv重命名

git pull拉回遠程版本庫的提交

git push推送至遠程版本庫

git rebase分支變基

git rebase–interactive互動式分支變基

git reflog分支等引用變更記錄管理

git remote遠程版本庫管理

git repo-config同義詞,等同於 git config

git reset重置改變分支「游標」指向

git rev-parse將各種引用表示法轉換為哈希值等

git revert反轉提交

git rm刪除文件

git show顯示各種類型的對象

git stage同義詞,等同於 git add

git stash保存和恢復進度

git status顯示工作區文件狀態

git tag里程碑管理

2、對象庫操作相關命令

命令 簡要說明

git commit-tree從樹對象創建提交

git hash-object從標準輸入或文件計算哈希值或創建對象

git ls-files顯示工作區和暫存區文件

git ls-tree顯示樹對象包含的文件

git mktag讀取標準輸入創建一個里程碑對象

git mktree讀取標準輸入創建一個樹對象

git read-tree讀取樹對象到暫存區

git update-index工作區內容註冊到暫存區及暫存區管理

git unpack-file創建臨時文件包含指定 blob 的內容

git write-tree從暫存區創建一個樹對象

3、引用操作相關命令

命令 簡要說明

git check-ref-format檢查引用名稱是否符合規範

git for-each-ref引用迭代器,用於shell編程

git ls-remote顯示遠程版本庫的引用

git name-rev將提交ID顯示為友好名稱

git peek-remote過時命令,請使用 git ls-remote

git rev-list顯示版本範圍

git show-branch顯示分支列表及拓撲關係

git show-ref顯示本地引用

git symbolic-ref顯示或者設置符號引用

git update-ref更新引用的指向

git verify-tag校驗 GPG 簽名的Tag

4、版本庫管理相關命令

命令 簡要說明

git count-objects顯示鬆散對象的數量和磁碟佔用

git filter-branch版本庫重構

git fsck對象庫完整性檢查

git fsck-objects同義詞,等同於 `git fsck

git gc版本庫存儲優化

git index-pack從打包文件創建對應的索引文件

git lost-found過時,請使用 git fsck –lost-found命令

git pack-objects從標準輸入讀入對象ID,打包到文件

git pack-redundant查找多餘的 pack 文件

git pack-refs將引用打包到 .git/packed-refs 文件中

git prune從對象庫刪除過期對象

git prune-packed將已經打包的鬆散對象刪除

git relink為本地版本庫中相同的對象建立硬連接

git repack將版本庫未打包的鬆散對象打包

git show-index讀取包的索引文件,顯示打包文件中的內容

git unpack-objects從打包文件釋放文件

git verify-pack校驗對象庫打包文件

5、數據傳輸相關命令

命令 簡要說明

git fetch-pack執行 git fetch 或 git pull命令時在本地執行此命令,用於從其他版本庫獲取缺失的對象

git receive-pack執行 git push 命令時在遠程執行的命令,用於接受推送的數據

git send-pack執行 git push 命令時在本地執行的命令,用於向其他版本庫推送數據

git upload-archive執行 git archive –remote命令基於遠程版本庫創建歸檔時,遠程版本庫執行此命令傳送歸檔

git upload-pack執行 git fetch 或 git pull 命令時在遠程執行此命令,將對象打包、上傳

6、郵件相關命令

命令 簡要說明

git imap-send將修補程式通過 IMAP 發送

git mailinfo從郵件導出提交說明和修補程式

git mailsplit將 mbox 或 Maildir 格式郵箱中郵件逐一提取為文件

git request-pull創建包含提交間差異和執行PULL操作地址的資訊

git send-email發送郵件

7、協議相關命令

命令 簡要說明

git daemon實現git協議

git http-backend實現HTTP協議的CGI程式,支援智慧HTTP協議

git instaweb即時啟動瀏覽器通過 `gitweb 瀏覽當前版本庫

git shell受限制的shell,提供僅執行git命令的SSH訪問

git update-server-info更新啞協議需要的輔助文件

git http-fetch通過HTTP協議獲取版本庫

git http-push通過HTTP/DAV協議推送

git remote-ext由git命令調用,通過外部命令提供擴展協議支援

git remote-fd由git命令調用,使用文件描述符作為協議介面

git remote-ftp由git命令調用,提供對FTP協議的支援

git remote-ftps由git命令調用,提供對FTPS協議的支援

git remote-http由git命令調用,提供對HTTP協議的支援

git remote-https由git命令調用,提供對HTTPS協議的支援

git remote-testgit協議擴展示例腳本

8、版本庫轉換和交互相關命令

命令 簡要說明

git archimport導入Arch版本庫到`git

git bundle提交打包和解包,以便在不同版本庫間傳遞

git cvsexportcommit將git的一個提交作為一個CVS檢出

git cvsimport導入CVS版本庫到git。或者使用 cvs2git

git cvsservergit的CVS協議模擬器,可供CVS命令訪問git版本庫

git fast-export將提交導出為git-fast-import 格式

git fast-import其他版本庫遷移至git的通用工具

git svngit 作為前端操作 Subversion

9、合併相關的輔助命令

命令 簡要說明

git merge-base供其他腳本調用,找到兩個或多個提交最近的共同祖先

git merge-file針對文件的兩個不同版本執行三向文件合併

git merge-index對index中的衝突文件調用指定的衝突解決工具

git merge-octopus合併兩個以上分支。參見 git merge 的octopus合併策略

git merge-one-filegit merge-index 調用的標準輔助程式

git merge-ours合併使用本地版本,拋棄他人版本。參見 git merge 的ours合併策略

git merge-recursive針對兩個分支的三向合併。參見 git merge 的recursive合併策略

git merge-resolve針對兩個分支的三向合併。參見 git merge 的resolve合併策略

git merge-subtree子樹合併。參見 git merge 的 subtree合併策略

git merge-tree顯式三向合併結果,不改變暫存區

git fmt-merge-msg供執行合併操作的腳本調用,用於創建一個合併提交說明

git rerere重用所記錄的衝突解決方案

命令 簡要說明

git bisect–helpergit bisect命令調用,確認二分查找進度

git check-attr顯示某個文件是否設置了某個屬性

git checkout-index從暫存區拷貝文件至工作區

git cherry查找沒有合併到上游的提交

git diff-files比較暫存區和工作區,相當於 git diff –raw

git diff-index比較暫存區和版本庫,相當於 git diff –cached –raw

git diff-tree比較兩個樹對象,相當於 git diff –raw A B

git difftool–helpergit difftool命令調用,默認要使用的差異比較工具

git get-tar-commit-idgit archive創建的 tar 包中提取提交ID

git gui–askpass命令 git gui的獲取用戶口令輸入介面

git notes提交評論管理

git patch-id修補程式過濾行號和空白字元後生成修補程式唯一ID

git quiltimport將Quilt修補程式列表應用到當前分支

git replace提交替換

git shortloggit log 的匯總輸出,適合於產品發布說明

git stripspace刪除空行,供其他腳本調用

git submodule子模組管理

git tar-tree過時命令,請使用 git archive

git var顯示 git 環境變數

git web–browse啟動瀏覽器以查看目錄或文件

git whatchanged顯示提交歷史及每次提交的改動

git-mergetool–lib包含於其他腳本中,提供合併/差異比較工具的選擇和執行

git-parse-remote包含於其他腳本中,提供操作遠程版本庫的函數

git-sh-setup包含於其他腳本中,提供 shell 編程的函數庫