首頁  >  文章  >  開發工具  >  總結 git常用指令大全

總結 git常用指令大全

coldplay.xixi
coldplay.xixi轉載
2020-12-17 17:28:543169瀏覽

Git教學欄位介紹git常用的指令

總結 git常用指令大全

推薦(免費):Git教學

一、 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 指令速查表

#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 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 程式設計的函數庫

Git指令參考手冊(文字版)

git init                      # 初始化本機git倉庫(建立新倉庫)

git config --global user.name "xxx"                       # 配置使用者名稱

#gitconfig --global user.email "xxx 

git config --global color.ui true                      地

##git config --global color.branch auto

git config --global color.interactive auto

git clone git ssh://git@192.168.53.168/VT. git             # clone遠端倉庫

git status                     # 查看目前版本狀態(是否修改)

##git add xyz                    新增xyz檔案至index

git add .                            目錄下所有已更改的文件至index

git commit -m 'xxx'                                                      # 合併上一個提交(用於重複修改)

git commit -am 'xxx'                                      # 將add和commit合為一步

git rm xxx                                                # 刪除index中的文件

git rm -r *                                               # 遞歸刪除

git log                               log -1                                git提示                                    02e6e4f2f7b573337763e5c0013802e392818         # 顯示某個提交的詳細內容

#git show dfb02 # 可只用commitid的前幾位

git show HEAD                         

git show HEAD^                             

##git tag                                 

#git tag -a v2.0 -m 'xxx'                                                          的git log v2.0                                                                                                    地的變更

git diff HEAD^                          -- ./lib                               而##  diff origin/master..master                            # 比較遠端分支master上有本地分支       # 只顯示差異的文件,不顯示特定內容

git remote add origin git ssh://git@192.168.53.168/VT.git                   # 顯示局部分支

git branch --contains 50089                                              地                        # 顯示所有原始分支

#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                                    # 檢出已存在的features/performance分支

git checkout --track hotfixes/BJVEP933                    # 檢出遠端分支                            # 檢出版本v2.0

git checkout - b origin/develop                      # 從遠端分支develop創建新本地分支devel並檢出

               # 檢出head版本的README檔案(可用於修改錯誤回退)#​​

# #git merge origin/master                               可能                      , 合併提交ff44785404a8e的修改

o             # 將目前分支push至遠端master分支

git push origin :hotfixes/BJVEP933                                        地                           #取得所有遠端分支(未更新本地分支,另需merge)

git fetch --prune                       

##git pull origin master                               取得遠端分支master並merge到目前分支

git mv README README2                        

git reset --hard HEAD                               hotfixes/BJVEP933                           # 刪除分支hotfixes/BJVEP933(此分支修改合併到其他分支)

git branch -D hotfixes/BJVEP933              ls-files                                   插圖

##git show-branch                                                                                    # 顯示提交歷史對應的文件修改

git revert dfb02e6e4f2f7b573337763e5c0013802e392818       # 撤銷提交d                                                                 # 內部指令:顯示某一ref對於的SHA1 HASH

git reflog                         節點

git show HEAD@{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 grep "delete from"                                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: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 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常用指令大全的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:jianshu.com。如有侵權,請聯絡admin@php.cn刪除