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_namegit branch -r -d branch_remote_name------------------------------------------------------ --------------------初始化版本庫,並提交到遠端伺服器端mkdir WebApp cd WebAppgit init 本機初始化touch READMEgit 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 blamegit 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 configgit reset重置改變分支“遊標”指向git rev-parse將各種引用表示法轉換為哈希值等git revert反轉提交git rm刪除檔案git show顯示各種類型的物件git stage*同義詞,等同於git addgit 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 -remotegit 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 autogit config --global color.interactive autogit 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 HASHgit reflog 節點git show HEAD@{5}git show master@{ yesterday} 的 # 圖示提交日誌git show HEAD~3git show -s --pretty=raw 2be7fcb476git 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:developgit 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中文網其他相關文章!