一、 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 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 cvsserver | Git的CVS協定模拟器,可供CVS指令通路Git版本庫 |
git fast-export | 将送出導出為 git-fast-import 格式 |
git fast-import | 其他版本庫遷移至Git的通用工具 |
git svn | Git 作為前端操作 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 程式設計的函數庫 |
下面腳本之家小編特為大家分享一個圖檔版的
Git 常用指令速查表。點選檢視大圖。

Git指令參考手冊(文本版)
git init # 初始化本地git倉庫(建立新倉庫)
git config --global user.name "xxx" # 配置使用者名
git config --global user.email "[email protected]" # 配置郵件
git config --global color.ui true # git status等指令自動着色
git config --global color.status auto
git config --global color.diff auto
git config --global color.branch auto
git config --global color.interactive auto
git clone git+ssh://[email protected]/VT.git # clone遠端倉庫
git status # 檢視目前版本狀态(是否修改)
git add xyz # 添加xyz檔案至index
git add . # 增加目前子目錄下所有更改過的檔案至index
git commit -m 'xxx' # 送出
git commit --amend -m 'xxx' # 合并上一次送出(用于反複修改)
git commit -am 'xxx' # 将add和commit合為一步
git rm xxx # 删除index中的檔案
git rm -r * # 遞歸删除
git log # 顯示送出日志
git log -1 # 顯示1行日志 -n為n行
git log -5
git log --stat # 顯示送出日志及相關變動檔案
git log -p -m
git show dfb02e6e4f2f7b573337763e5c0013802e392818 # 顯示某個送出的詳細内容
git show dfb02 # 可隻用commitid的前幾位
git show HEAD # 顯示HEAD送出日志
git show HEAD^ # 顯示HEAD的父(上一個版本)的送出日志 ^^為上兩個版本 ^5為上5個版本
git tag # 顯示已存在的tag
git tag -a v2.0 -m 'xxx' # 增加v2.0的tag
git show v2.0 # 顯示v2.0的日志及詳細内容
git log v2.0 # 顯示v2.0的日志
git diff # 顯示所有未添加至index的變更
git diff --cached # 顯示所有已添加index但還未commit的變更
git diff HEAD^ # 比較與上一個版本的差異
git diff HEAD -- ./lib # 比較與HEAD版本lib目錄的差異
git diff origin/master..master # 比較遠端分支master上有本地分支master上沒有的
git diff origin/master..master --stat # 隻顯示差異的檔案,不顯示具體内容
git remote add origin git+ssh://[email protected]/VT.git # 增加遠端定義(用于push/pull/fetch)
git branch # 顯示本地分支
git branch --contains 50089 # 顯示包含送出50089的分支
git branch -a # 顯示所有分支
git branch -r # 顯示所有原創分支
git branch --merged # 顯示所有已合并到目前分支的分支
git branch --no-merged # 顯示所有未合并到目前分支的分支
git branch -m master master_copy # 本地分支改名
git checkout -b master_copy # 從目前分支建立新分支master_copy并檢出
git checkout -b master master_copy # 上面的完整版
git checkout features/performance # 檢出已存在的features/performance分支
git checkout --track hotfixes/BJVEP933 # 檢出遠端分支hotfixes/BJVEP933并建立本地跟蹤分支
git checkout v2.0 # 檢出版本v2.0
git checkout -b devel origin/develop # 從遠端分支develop建立新本地分支devel并檢出
git checkout -- README # 檢出head版本的README檔案(可用于修改錯誤回退)
git merge origin/master # 合并遠端master分支至目前分支
git cherry-pick ff44785404a8e # 合并送出ff44785404a8e的修改
git push origin master # 将目前分支push到遠端master分支
git push origin :hotfixes/BJVEP933 # 删除遠端倉庫的hotfixes/BJVEP933分支
git push --tags # 把所有tag推送到遠端倉庫
git fetch # 擷取所有遠端分支(不更新本地分支,另需merge)
git fetch --prune # 擷取所有原創分支并清除伺服器上已删掉的分支
git pull origin master # 擷取遠端分支master并merge到目前分支
git mv README README2 # 重命名檔案README為README2
git reset --hard HEAD # 将目前版本重置為HEAD(通常用于merge失敗回退)
git rebase
git branch -d hotfixes/BJVEP933 # 删除分支hotfixes/BJVEP933(本分支修改已合并到其他分支)
git branch -D hotfixes/BJVEP933 # 強制删除分支hotfixes/BJVEP933
git ls-files # 列出git index包含的檔案
git show-branch # 圖示目前分支曆史
git show-branch --all # 圖示所有分支曆史
git whatchanged # 顯示送出曆史對應的檔案修改
git revert dfb02e6e4f2f7b573337763e5c0013802e392818 # 撤銷送出dfb02e6e4f2f7b573337763e5c0013802e392818
git ls-tree HEAD # 内部指令:顯示某個git對象
git rev-parse v2.0 # 内部指令:顯示某個ref對于的SHA1 HASH
git reflog # 顯示所有送出,包括孤立節點
git show [email protected]{5}
git show [email protected]{yesterday} # 顯示master分支昨天的狀态
git log --pretty=format:'%h %s' --graph # 圖示送出日志
git show HEAD~3
git show -s --pretty=raw 2be7fcb476
git stash # 暫存目前修改,将所有至為HEAD狀态
git stash list # 檢視所有暫存
git stash show -p [email protected]{0} # 參考第一次暫存
git stash apply [email protected]{0} # 應用第一次暫存
git grep "delete from" # 檔案中搜尋文本“delete from”
git grep -e '#define' --and -e SORT_DIRENT
git gc
git fsck
Git 是一個很強大的分布式版本控制系統。它不但适用于管理大型開源軟體的源代碼,管理私人的文檔和源代碼也有很多優勢。
Git常用操作指令:
1) 遠端倉庫相關指令
檢出倉庫:$ git clone git://github.com/jquery/jquery.git
檢視遠端倉庫:$ git remote -v
添加遠端倉庫:$ git remote add [name] [url]
删除遠端倉庫:$ git remote rm [name]
修改遠端倉庫:$ git remote set-url --push [name] [newUrl]
拉取遠端倉庫:$ git pull [remoteName] [localBranchName]
推送遠端倉庫:$ git push [remoteName] [localBranchName]
*如果想把本地的某個分支test送出到遠端倉庫,并作為遠端倉庫的master分支,或者作為另外一個名叫test的分支,如下:
$git push origin test:master // 送出本地test分支作為遠端的master分支
$git push origin test:test // 送出本地test分支作為遠端的test分支
2)分支(branch)操作相關指令
檢視本地分支:$ git branch
檢視遠端分支:$ git branch -r
建立本地分支:$ git branch [name] ----注意新分支建立後不會自動切換為目前分支
切換分支:$ git checkout [name]
建立新分支并立即切換到新分支:$ git checkout -b [name]
删除分支:$ git branch -d [name] ---- -d選項隻能删除已經參與了合并的分支,對于未有合并的分支是無法删除的。如果想強制删除一個分支,可以使用-D選項
合并分支:$ git merge [name] ----将名稱為[name]的分支與目前分支合并
建立遠端分支(本地分支push到遠端):$ git push origin [name]
删除遠端分支:$ git push origin :heads/[name] 或 $ gitpush origin :[name]
*建立空的分支:(執行指令之前記得先送出你目前分支的修改,否則會被強制删幹淨沒得後悔)
$git symbolic-ref HEAD refs/heads/[name]
$rm .git/index
$git clean -fdx
3)版本(tag)操作相關指令
檢視版本:$ git tag
建立版本:$ git tag [name]
删除版本:$ git tag -d [name]
檢視遠端版本:$ git tag -r
建立遠端版本(本地版本push到遠端):$ git push origin [name]
删除遠端版本:$ git push origin :refs/tags/[name]
合并遠端倉庫的tag到本地:$ git pull origin --tags
上傳本地tag到遠端倉庫:$ git push origin --tags
建立帶注釋的tag:$ git tag -a [name] -m 'yourMessage'
4) 子子產品(submodule)相關操作指令
添加子子產品:$ git submodule add [url] [path]
如:$git submodule add git://github.com/soberh/ui-libs.git src/main/webapp/ui-libs
初始化子子產品:$ git submodule init ----隻在首次檢出倉庫時運作一次就行
更新子子產品:$ git submodule update ----每次更新或切換分支後都需要運作一下
删除子子產品:(分4步走哦)
1) $ git rm --cached [path]
2) 編輯“.gitmodules”檔案,将子子產品的相關配置節點删除掉
3) 編輯“ .git/config”檔案,将子子產品的相關配置節點删除掉
4) 手動删除子子產品殘留的目錄
5)忽略一些檔案、檔案夾不送出
在倉庫根目錄下建立名稱為“.gitignore”的檔案,寫入不需要的檔案夾名或檔案,每個元素占一行即可,如
target
bin
*.db
=====================
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
-----------------------------------------------------------
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
git push -u origin master
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 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 cvsserver | Git的CVS協定模拟器,可供CVS指令通路Git版本庫 |
git fast-export | 将送出導出為 git-fast-import 格式 |
git fast-import | 其他版本庫遷移至Git的通用工具 |
git svn | Git 作為前端操作 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 程式設計的函數庫 |
下面腳本之家小編特為大家分享一個圖檔版的
Git 常用指令速查表。點選檢視大圖。

Git指令參考手冊(文本版)
git init # 初始化本地git倉庫(建立新倉庫)
git config --global user.name "xxx" # 配置使用者名
git config --global user.email "[email protected]" # 配置郵件
git config --global color.ui true # git status等指令自動着色
git config --global color.status auto
git config --global color.diff auto
git config --global color.branch auto
git config --global color.interactive auto
git clone git+ssh://[email protected]/VT.git # clone遠端倉庫
git status # 檢視目前版本狀态(是否修改)
git add xyz # 添加xyz檔案至index
git add . # 增加目前子目錄下所有更改過的檔案至index
git commit -m 'xxx' # 送出
git commit --amend -m 'xxx' # 合并上一次送出(用于反複修改)
git commit -am 'xxx' # 将add和commit合為一步
git rm xxx # 删除index中的檔案
git rm -r * # 遞歸删除
git log # 顯示送出日志
git log -1 # 顯示1行日志 -n為n行
git log -5
git log --stat # 顯示送出日志及相關變動檔案
git log -p -m
git show dfb02e6e4f2f7b573337763e5c0013802e392818 # 顯示某個送出的詳細内容
git show dfb02 # 可隻用commitid的前幾位
git show HEAD # 顯示HEAD送出日志
git show HEAD^ # 顯示HEAD的父(上一個版本)的送出日志 ^^為上兩個版本 ^5為上5個版本
git tag # 顯示已存在的tag
git tag -a v2.0 -m 'xxx' # 增加v2.0的tag
git show v2.0 # 顯示v2.0的日志及詳細内容
git log v2.0 # 顯示v2.0的日志
git diff # 顯示所有未添加至index的變更
git diff --cached # 顯示所有已添加index但還未commit的變更
git diff HEAD^ # 比較與上一個版本的差異
git diff HEAD -- ./lib # 比較與HEAD版本lib目錄的差異
git diff origin/master..master # 比較遠端分支master上有本地分支master上沒有的
git diff origin/master..master --stat # 隻顯示差異的檔案,不顯示具體内容
git remote add origin git+ssh://[email protected]/VT.git # 增加遠端定義(用于push/pull/fetch)
git branch # 顯示本地分支
git branch --contains 50089 # 顯示包含送出50089的分支
git branch -a # 顯示所有分支
git branch -r # 顯示所有原創分支
git branch --merged # 顯示所有已合并到目前分支的分支
git branch --no-merged # 顯示所有未合并到目前分支的分支
git branch -m master master_copy # 本地分支改名
git checkout -b master_copy # 從目前分支建立新分支master_copy并檢出
git checkout -b master master_copy # 上面的完整版
git checkout features/performance # 檢出已存在的features/performance分支
git checkout --track hotfixes/BJVEP933 # 檢出遠端分支hotfixes/BJVEP933并建立本地跟蹤分支
git checkout v2.0 # 檢出版本v2.0
git checkout -b devel origin/develop # 從遠端分支develop建立新本地分支devel并檢出
git checkout -- README # 檢出head版本的README檔案(可用于修改錯誤回退)
git merge origin/master # 合并遠端master分支至目前分支
git cherry-pick ff44785404a8e # 合并送出ff44785404a8e的修改
git push origin master # 将目前分支push到遠端master分支
git push origin :hotfixes/BJVEP933 # 删除遠端倉庫的hotfixes/BJVEP933分支
git push --tags # 把所有tag推送到遠端倉庫
git fetch # 擷取所有遠端分支(不更新本地分支,另需merge)
git fetch --prune # 擷取所有原創分支并清除伺服器上已删掉的分支
git pull origin master # 擷取遠端分支master并merge到目前分支
git mv README README2 # 重命名檔案README為README2
git reset --hard HEAD # 将目前版本重置為HEAD(通常用于merge失敗回退)
git rebase
git branch -d hotfixes/BJVEP933 # 删除分支hotfixes/BJVEP933(本分支修改已合并到其他分支)
git branch -D hotfixes/BJVEP933 # 強制删除分支hotfixes/BJVEP933
git ls-files # 列出git index包含的檔案
git show-branch # 圖示目前分支曆史
git show-branch --all # 圖示所有分支曆史
git whatchanged # 顯示送出曆史對應的檔案修改
git revert dfb02e6e4f2f7b573337763e5c0013802e392818 # 撤銷送出dfb02e6e4f2f7b573337763e5c0013802e392818
git ls-tree HEAD # 内部指令:顯示某個git對象
git rev-parse v2.0 # 内部指令:顯示某個ref對于的SHA1 HASH
git reflog # 顯示所有送出,包括孤立節點
git show [email protected]{5}
git show [email protected]{yesterday} # 顯示master分支昨天的狀态
git log --pretty=format:'%h %s' --graph # 圖示送出日志
git show HEAD~3
git show -s --pretty=raw 2be7fcb476
git stash # 暫存目前修改,将所有至為HEAD狀态
git stash list # 檢視所有暫存
git stash show -p [email protected]{0} # 參考第一次暫存
git stash apply [email protected]{0} # 應用第一次暫存
git grep "delete from" # 檔案中搜尋文本“delete from”
git grep -e '#define' --and -e SORT_DIRENT
git gc
git fsck
Git 是一個很強大的分布式版本控制系統。它不但适用于管理大型開源軟體的源代碼,管理私人的文檔和源代碼也有很多優勢。
Git常用操作指令:
1) 遠端倉庫相關指令
檢出倉庫:$ git clone git://github.com/jquery/jquery.git
檢視遠端倉庫:$ git remote -v
添加遠端倉庫:$ git remote add [name] [url]
删除遠端倉庫:$ git remote rm [name]
修改遠端倉庫:$ git remote set-url --push [name] [newUrl]
拉取遠端倉庫:$ git pull [remoteName] [localBranchName]
推送遠端倉庫:$ git push [remoteName] [localBranchName]
*如果想把本地的某個分支test送出到遠端倉庫,并作為遠端倉庫的master分支,或者作為另外一個名叫test的分支,如下:
$git push origin test:master // 送出本地test分支作為遠端的master分支
$git push origin test:test // 送出本地test分支作為遠端的test分支
2)分支(branch)操作相關指令
檢視本地分支:$ git branch
檢視遠端分支:$ git branch -r
建立本地分支:$ git branch [name] ----注意新分支建立後不會自動切換為目前分支
切換分支:$ git checkout [name]
建立新分支并立即切換到新分支:$ git checkout -b [name]
删除分支:$ git branch -d [name] ---- -d選項隻能删除已經參與了合并的分支,對于未有合并的分支是無法删除的。如果想強制删除一個分支,可以使用-D選項
合并分支:$ git merge [name] ----将名稱為[name]的分支與目前分支合并
建立遠端分支(本地分支push到遠端):$ git push origin [name]
删除遠端分支:$ git push origin :heads/[name] 或 $ gitpush origin :[name]
*建立空的分支:(執行指令之前記得先送出你目前分支的修改,否則會被強制删幹淨沒得後悔)
$git symbolic-ref HEAD refs/heads/[name]
$rm .git/index
$git clean -fdx
3)版本(tag)操作相關指令
檢視版本:$ git tag
建立版本:$ git tag [name]
删除版本:$ git tag -d [name]
檢視遠端版本:$ git tag -r
建立遠端版本(本地版本push到遠端):$ git push origin [name]
删除遠端版本:$ git push origin :refs/tags/[name]
合并遠端倉庫的tag到本地:$ git pull origin --tags
上傳本地tag到遠端倉庫:$ git push origin --tags
建立帶注釋的tag:$ git tag -a [name] -m 'yourMessage'
4) 子子產品(submodule)相關操作指令
添加子子產品:$ git submodule add [url] [path]
如:$git submodule add git://github.com/soberh/ui-libs.git src/main/webapp/ui-libs
初始化子子產品:$ git submodule init ----隻在首次檢出倉庫時運作一次就行
更新子子產品:$ git submodule update ----每次更新或切換分支後都需要運作一下
删除子子產品:(分4步走哦)
1) $ git rm --cached [path]
2) 編輯“.gitmodules”檔案,将子子產品的相關配置節點删除掉
3) 編輯“ .git/config”檔案,将子子產品的相關配置節點删除掉
4) 手動删除子子產品殘留的目錄
5)忽略一些檔案、檔案夾不送出
在倉庫根目錄下建立名稱為“.gitignore”的檔案,寫入不需要的檔案夾名或檔案,每個元素占一行即可,如
target
bin
*.db
=====================
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
-----------------------------------------------------------
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
git push -u origin master
Git 常用指令圖表