git 命令集

git 命令集

分類: Linux 314人閱讀 評論(0) 收藏 舉報
 

git 命令集

 

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

配置

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

git config --global user.name "Karl Ma" 配置用戶名

git config --global user.email [email protected] 配置用戶mail

git config --global core.editor emacs 配置編輯器

git config --global merge.tool vimdiff  配置差異分析工具

git config --list 顯示配置項

git config user.name 顯示特定的配置項

以下是設置命令的別名

git config --global alias.co checkout

git config --global alias.br branch

git config --global alias.ci commit

git config --global alias.st status

 

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

幫助

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

git help

git help tag

git tag --help

 

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

基本命令

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

git init 要對現有的某個項目開始用 Git 管理,需到此項目所在的目錄執行此命令

git init --bare --shared 在一個空目錄下執行可以創建一個純倉庫, --shared 選項,Git 會自動對該倉庫加入可寫的組

git add *.c   跟蹤新文件,將*.c的文件們增加到暫存區

gti commit 將暫存區的文件提交,會啓動編輯工具

git commit -m 'some' 將暫存區的文件提交

git commit -a -m 'some' 自動把所有已經跟蹤過的文件暫存起來一併提交,跳過git add步驟,沒有跟蹤的文件不會提交,也不增加

git commit --amend 重新提交,與上一次提交合併成一次提交

git clone git://github.com/schacon/grit.git 從遠程服務器上clone一份,ssh協議的格式爲user@server:/path.git

git clone git://github.com/schacon/grit.git mygrit 從遠程服務器上clone一份到本地的mygrit目錄

git clone file:///d:/myproject/test.git 本地協議clone

git clone /d/myprojects/test.git 本地協議lcone

git clone ssh://user@host:project.git 使用ssh協議

git clone user@host:project.git 同上,省略寫法

git clone --bare my_project my_project.git 把一個倉庫克隆爲純倉庫

git status 檢查當前文件狀態

git add <file> 暫存已修改文件

git rm <file> 移除跟蹤的文件,同時刪除本地文件

git rm -f <file> 如果文件已經修改過並放到了暫存區,需要強制移除

git rm --cached <file> 不刪除本地文件,只從跟蹤清單中移除

git rm /*~  移除所有以~結尾的文件,從當前目前遞歸執行。/表示需要git來解釋*而不是用shell來解釋*,如果用shell來解決*的話,就不會有遞歸啦

git mv file_from file_to 移動文件,這裏相當於改名,相當於執行了三條命令:(不論用哪種方式,git都會知道是改名啦)

$ mv README.txt README

$ git rm README.txt

$ git add README

git log 查看提交歷史日誌

git log -p 顯示每次提交的差異

git log -p -2 只顯示最近兩次的提交日誌,當然顯示其差異

git log --stat 僅顯示簡要的增改行數統計

git log --pretty=oneline 每一個日誌只顯示在一行

git log --pretty=format:"%h - %an, %ar : %s" 以特定的格式顯示

git log --graph 顯示樹形圖

 

在項目目錄下編輯.gitignore文件,忽略文件的模式

# 此爲註釋 – 將被 Git 忽略

*.a       # 忽略所有 .a 結尾的文件

!lib.a    # 但 lib.a 除外

/TODO     # 僅僅忽略項目根目錄下的 TODO 文件,不包括 subdir/TODO

build/    # 忽略 build/ 目錄下的所有文件

doc/*.txt # 會忽略 doc/notes.txt 但不包括 doc/server/arch.txt

 

git diff 比較工作目錄中的文件與暫存區的文件的差異

git diff --cached 已經暫存起來的文件和上次提交時的快照之間的差異

git diff --staged 效果同上,1.6.1以上的git支持

 

gitk GUI界面

git reset HEAD benchmarks.rb 取消先前放到暫存區中的文件

git checkout -- benchmarks.rb 取消工作目錄中文件的修改,恢復到修改前的版本

 

git remote 查看當前的遠程庫

git remote -v 查看當前的遠程庫,並顯示對應的clone地址

git remote add pb git://github.com/paulboone/ticgit.git 添加一個遠程庫

git fetch pb 從遠程倉庫pb中抓取數據

git pull 從原始克隆的遠端倉庫中抓取數據後,合併到工作目錄中當前分支

git push origin master 推送數據到遠程倉庫origin的master分支

git remote show origin 顯示遠程倉庫origin的信息

git remote rename pb paul 將遠程倉庫pb重命名爲paul

git remote rm paul 刪除遠程倉庫paul

 

git tag 列顯已有的標籤

git tag -l 'v1.4.2.*' 列顯以v1.4.2.開頭標籤

git tag -a v1.4 -m 'my version 1.4' 創建一個含附註類型的標籤

git show v1.4 查看相應標籤的版本信息,並連同顯示打標籤時的提交對象

git tag -s v1.5 -m 'my signed 1.5 tag' 簽署標籤

git tag -v v1.4.2.1 驗證簽署的標籤

git tag v1.4-lw 輕量級標籤

git tag -a v1.2 9fceb02 將校驗和以9fceb02的一次提交打上v1.2的標籤,需要先用git log --pretty=oneline命令看一下每次提交的校驗和

git push origin v1.5 將v1.5的標籤推送到遠程倉庫origin

git push origin --tags 將所有標籤推送到遠程倉庫origin

 

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

分支與合併

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

git branch testing  創建一個testing分支

git checkout testing 將工作目錄轉換到testing分支上

git checkout -b testing 相當於上兩條命令一起執行

 

git merge hotfix 將當前所在的分支(如master)合併到hotfix分支上,合併後hotfix和master會指向同一個快照

git branch -d hotfix  刪除hotfix分支

git branch -D hotfix  強制刪除hotfix分支,如果hotfix分支沒有與當前分支合併過,用-d刪除會返回錯誤,可以用-D強制刪除

 

git status 可以查看哪些合併合併時發生了突出

 

git mergetool 調用一個可視化的合併工具,//在我的機器上會調用TortoiseMerge,我安裝了TortoiseSVN

 

git add <file> 將修改完的(解決衝突的文件放到暫存區)

git commit -a -m 'some gugu' 直接將修改後的(解決了衝突的文件提交)

 

git branch 顯示所有的分支,顯示時前面有*那個分支爲工作目錄所在的分支

git branch -v 顯示分支的同時,顯示分支的最後一次信息

 

git branch --merged 查看哪些分支已被併入當前分支,刪除這些分支(非當前分支不會損失什麼)

git branch --no-merged 查看哪些分支沒有併入當前分支,刪除這些分支會損失

 

git push origin serverfix 取出我的 serverfix 本地分支,推送它來更新遠程倉庫origin的 serverfix 分支

git push origin myserverfix:serverfix 取出我的myserverfix 本地分支,推送它來更新遠程倉庫origin的 serverfix 分支

 

git merge origin/serverfix 如果要把origin倉庫的serverfix內容合併到當前分支

 

git checkout -b serverfix origin/serverfix  從origin倉庫的serverfix分支創建一個本地的serverfix分支

git checkout --track origin/serverfix 結果同上一條一樣,1.6.2版本以上的git支持

 

git push [遠程名] :[分支名] 刪除一個遠程分支

git push origin :serverfix 刪除遠程分支serverfix

 

git rebase master 將當前分支衍合到master分支

git rebase --onto master server client 相當於檢出 client 分支,找出 client 分支和 server 分支的共同祖先之後的變化,然後把它們在 master 上重演一遍

git rebase master server 當前分支在master,這個命令相當於先轉到server分支,再執行git rebase master

發佈了2 篇原創文章 · 獲贊 2 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章