阿里程序員常用的100條git命令,都掌握了就會發現git其實很簡單

阿里程序員常用的100條git命令,都掌握了就會發現git其實很簡單

一、 Git 常用命令速查

git branch 查看本地所有分支

git status 查看當前狀態

git commit 提交

git branch -a 查看所有的分支

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

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

git remote add origin [email protected]:ndshow

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

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

git push origin master:develop

git push origin master:hb-dev 將本地庫與服務器上的庫進行關聯

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 [email protected]:username/Hello-World.git

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

-----------------------------------------------------------

git pull 本地與服務器端同步

-----------------------------------------------------------------

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

git push origin serverfix:awesomebranch

------------------------------------------------------------------

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

git commit -a -m "log_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分支

du -hs

git branch 刪除遠程branch

git push origin :branch_remote_name

git branch -r -d branch_remote_name

-----------------------------------------------------------

初始化版本庫,並提交到遠程服務器端

mkdir WebApp

cd WebApp

git init本地初始化

touch README

git add README添加文件

git commit -m 'first commit'

git remote add origin [email protected]:daixu/WebApp.git增加一個遠程服務器端

上面的命令會增加URL地址為'[email protected]:daixu/WebApp.git',名稱為origin的遠程服務器庫,以後提交代碼的時候只需要使用 origin別名即可

二、 Git 命令速查表

1、常用的Git命令

命令 簡要說明

git add添加至暫存區

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 reset HEAD 取消更改

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-file由 git 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重用所記錄的衝突解決方案

10、 雜項

命令 簡要說明

git bisect–helper由 git 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–helper由 git difftool 命令調用,默認要使用的差異比較工具

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

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

git notes提交評論管理

git patch-id補丁過濾行號和空白字符後生成補丁唯一ID

git quiltimport將Quilt補丁列表應用到當前分支

git replace提交替換

git shortlog對 git 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 編程的函數庫

------END


分享到:


相關文章: