一、 Git 常用命令速查
git branch 查看本地所有分支
git status 查看目前狀態
git commit 提交
git branch -a 查看所有的分支
git branch -r 查看遠端所有分支
git commit -am "init" 提交並且加上註解
git remote add origin git@192.168.1.119: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 git@github.com: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 git@github.com:daixu/WebApp.git
增加一個遠端伺服器端
上面的指令會增加URL位址為'git@github.com:daixu/WebApp.git',名稱為origin的遠端伺服器函式庫,以後提交程式碼的時候只需要使用origin別名即可
#推薦(免費):Git
二、 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 init
|
git log |
#顯示提交日誌
|
git merge |
#分支合併
|
##git mergetool |
圖化衝突解決
|
|
#git mv |
重命名 ############# #####git pull##################拉回遠端版本庫的提交###### |
git push |
#推送到遠端版本庫 |
git rebase |
#分支變基 |
git rebase–interactive |
#互動式分支變基 |
git reflog |
#分支等參考變更記錄管理 |
#########git repo-config*###################同義詞,等同於git 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 |
#從暫存區建立一個樹物件 |
#指令 |
簡單說明 |
#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 pull 命令時在本地執行此命令,用於從其他版本庫取得缺少的物件
|
||
#執行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 |
指令 |
簡單說明 |
# git merge-base |
供其他腳本調用,找到兩個或多個提交最近的共同祖先 |
git merge-file |
#針對檔案的兩個不同版本執行三向檔案合併 |
git merge-index |
#對index中的衝突檔案呼叫指定的衝突解決工具 |
git merge-octopus |
|
##############合併兩個以上分支。參考 git merge ###的octopus合併策略#####################git merge-one-file##################git merge-one-file###### |
git merge-index #呼叫的標準輔助程式 |
git merge-ours |
合併使用本地版本,拋棄他人版本。參考git merge 的ours合併策略 |
git merge-recursive |
|
的recursive合併策略
|
git merge-resolve |
的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 archive ################ #####git var####### |
顯示Git 環境變數 |
git web–browse |
|
下面腳本之家小編特為大家分享一個圖片版的
#Git 常用指令速查表。點擊可看大圖。
Git指令參考手冊(文字版)
git init global user.name "xxx" # 設定使用者名稱
git config --global user.email "xxx@xxx.com " # 設定郵件
git config --global color.ui true uto
git config --global color.diff auto
git config --global color.branch auto
git config --global color.interactive auto
git clone git ssh://git@192.168.53.168/VT.git 查看目前版本狀態(是否修改)
git add xyz add . 'xxx' 提交
git commit --amend -m 'xxx' # 合併上一次提交(用於反復修改)
git commit -am 'xxx' # 將add和commit合為一步
git rm xxx #刪除index中的文件
git rm -r * ##git log --stat git log -p -m
git show dfb02e6e4f2f7b573337763e5c0013802e392818 地 # 顯示HEAD提交日誌
git show HEAD^ git tag 0 -m 'xxx' # 的v2.0 # 顯示v2.0的日誌
git diff 為HEAD -- ./lib # 比較以本地分支master 有沒有在遠端分支master 的 ##git diff origin/master..master --stat 地#git branch # 顯示包含提交50089的分支
#git branch -a # 顯示所有已合併至目前分支的分支
git branch --no- # 顯示所有未合併至目前分支的分支
git branch -m master master_copy # 從目前分支建立新分支master_copy並檢出
git checkout -b master master_copy 上面的完整版
git checkout features/performance # 檢出遠端分支hotfixes/BJVEP933並建立本地追蹤分支
git checkout v2.0 # 從遠端分支 # 檢出head版本的README文件(可用於修改錯誤回退)
git merge origin/master # 所提交ff44785404a8e # 將目前分支push到遠端master分支
git push origin :hotfixes/BJVEP933 # 所有遠端分支(不更新本地分支,另需merge)
#git fetch --prune 的 # 以重複命名文件README為README2
git reset --hard HEAD xes/BJVEP933 # 移除分檔hotfixes/BJVEP933(本分支修改合併到其他分支)
git branch -D hotfixes/BJVEP933 的 # 如圖分支歷史
git show-branch --all # 圖示所有分支歷史
git whatchanged # 顯示提交歷史對應的文件修改
git revert dfb02e6e4f2f7b573337763e5c0013802e392818 # 撤銷提交dfb02e6e4f2f7b573337763e5c0013802e392818
git ls-tree HEAD #內部指令:顯示某個git對象
git rev-parse v2.0 {5}
git show master@{yesterday} # 圖示提交日誌
git show HEAD~3
git show -s --pretty=raw 2be7fcb476
git stash # 暫存目前修改,將所有至為HEAD狀態
git stash list # 查看所有暫存
git stash show -p stash@{0} # 參考第一次暫存
git stash apply stash@{0} # 應用第一次暫存
git grep "delete from" 的#git fsck
Git 是一個很強大的分散式版本控制系統。它不但適用於管理大型開源軟體的原始程式碼,管理私人的文件和原始碼也有很多優勢。
Git常用操作指令:
$git push origin test:master // 提交本地test分支作為遠端的master分支
$git push origin 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
##*.dbgit branch 查看本地所有分支
git status 查看目前狀態
git commit 提交
git branch -a 查看所有的分支
git branch -r 查看本地所有分支
git commit -am "init" 提交並且加註
git remote add origin git@192.168.1.119: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 git@github.com: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 git@github.com:daixu/WebApp.git
git push -u origin master
Git 常用指令圖表
以上是介紹Git 常用指令大全的詳細內容。更多資訊請關注PHP中文網其他相關文章!