git 常用命令介紹
1. 檢視分支:
$ git branch 該命令會類出當先專案中的所有分支資訊,其中以*開頭的表示當前所在的分支。引數-r列出遠端倉庫中的分支,而-a則遠端與本地倉庫的全部分支。
2. 建立新分支:
$ git branch testing 建立乙個名為testing的分支
3. 切換分支:
$ git checkout teting 切換到testing分支上。通過向該命令傳遞乙個-b引數,可以實現建立並切換分支的功能。
4. 合併分支:
$ git merge hotfix 將hotfix分支合併到當前分支當中去
5. 刪除分支:
$ git branch -d hotfix 刪除分支hotfix,-d選項只能刪除已經被當前分支所合併過的分支,而要強制刪除沒有被合併過的分支,可以使用-d。
git檢視、刪除、重新命名遠端分支和tag
刪除遠端分支和tag
$ git push origin --delete
//在git v1.7.0 之後,可以使用這種語法刪除遠端分支:
git push origin --delete tag 刪除遠端tag
否則,可以使用這種語法,推送乙個空分支到遠端分支,其實就相當於刪除遠端分支:
git push origin :
這是刪除tag的方法,推送乙個空tag到遠端tag:
git tag -d
git push origin :refs/tags/
兩種語法作用完全相同。
6. 重新命名分支:
$ git branch -m oldbranch newbranch -m用來強制重新命名,如newbranch已經存在的時候。
7. 檢視分支之間的不同:
$ git diff branchname 檢視當前分支與branchname分支之間的差異,也可以使用:$ git diff branch1 branch2 來比較這1和2分支之間的差異,當使用第一種方式比較時,如果當前工作目錄中存在與branchname同名的檔案,系統則會提示錯誤,要是指明要比較的是檔案還是分支,如果比較分支,可以進入.git中進行比較或切換分支,如果是》比較檔案,則使用$ git diff -- filename命令。
$ git diff ::
$ git ls-tree -r branch 列出所有的樹物件
8. 獲取遠端分支:
在使用git clone命令從遠端伺服器轉殖git倉庫時,只是將遠端倉庫當前分支的內容轉殖到本地,要是轉殖其他分支的內容,需要使用下面命令:可通過git branch -r命令來
檢視想要獲取的遠端倉庫中的分支。
如果要把該內容合併到當前分支,可以執行 git merge origin/serverfix。如果想要乙份自己的 serverfix 來開發,可以在遠端分支的基礎上分化出乙個新的分支來:
$ git checkout -b serverfix origin/serverfix
這會切換到新建的 serverfix 本地分支,其內容同遠端分支 origin/serverfix 一致。這種基於遠端分支新建本地分支非常實用,此命令可以減少服務端衝突。
9. 合併衝突:
如果在不同的分支中都修改了同乙個檔案的同一部分,git 就無法乾淨地把兩者合到一起(譯註:邏輯上說,這種問題只能由人來裁決。)
任何包含未解決衝突的檔案都會以未合併(unmerged)的狀態列出。git 會在有衝突的檔案裡加入標準的衝突解決標記,可以通過它們來手工定位並解決這些衝突。
在解決了所有檔案裡的所有衝突後,執行 git add 將把它們標記為已解決狀態(譯註:實際上就是來一次快照儲存到暫存區域。)。因為一旦暫存,就表示衝突已經解決。如
果你想用乙個有圖形介面的工具來解決這些問題,不妨執行 git mergetool,它會呼叫乙個視覺化的合併工具並引導你解決所有衝突。
要從該清單中篩選出你已經(或尚未)與當前分支合併的分支,可以用 --merge 和 --no-merged 選項(git 1.5.6 以上版本)。比如用 git branch --merge 檢視哪些分支》已被併入當前分支(譯註:也就是說哪些分支是當前分支的直接上游。)
10. 遠端分支:
11. 推送本地分支:
$ git push (遠端倉庫名字) (分支名) 如:$ git push orgin serverfix 該命令會將本地serverfix分支推送到origin遠端倉庫的serverfix分支中去,也可以使用命令 $ git push origin serverfix:serferfix實現同樣的效果,可以將第二個serverfix更改為其它名字來指定要將該本地分支推送到遠端倉庫中的的指定分支中去,如果不存在,則會在
遠端倉庫中新建分支。
12. 更新分支 git pull:
從其它的版本庫(既可以是遠端的也可以是本地的)將**更新到本地,例如:「git pull origin master 」就是將origin這個版本庫的**更新到本地的master主分支。
git pull可以從任意乙個git庫獲取某個分支的內容。用法如下:
git pull username@ipaddr: 遠端repository名 遠端分支名:本地分支名。這條命令將從遠端git庫的遠端分支名獲取到本地git庫的乙個本地分支中。其中,如果不寫本地
分支名,則預設pull到本地當前分支。
需要注意的是,git pull也可以用來合併分支。 和git merge的作用相同。 因此,如果你的本地分支已經有內容,則git pull會合併這些檔案,如果有衝突會報警。
13. git push (操作比較複雜,建議使用git push orgin serverfix)
將本地commit的**更新到遠端版本庫中,例如 「git push origin」就會將本地的**更新到名為orgin的遠端版本庫中。
git push和git pull正好想反,是將本地某個分支的內容提交到遠端某個分支上。用法: git pushusername@ipaddr: 遠端repository名 本地分支名:遠端分支名。這條命
令將本地git庫的乙個本地分支push到遠端git庫的遠端分支名中。
需要格外注意的是,git push好像不會自動合併檔案。因此,如果git push時,發生了衝突,就會被後push的檔案內容強行覆蓋,而且沒有什麼提示。 這在合作開發時是》很危險的事情。
14. 設定/修改當前分支基於遠端父分支
git branch -u origin/*********(remote branch)
zhanghao@zhanghao mingw64 /h/anhui-mobile (custom/anhui-mobile)
$ git branch -u origin/custom/ref_stable_2.4/china_mobile //把本地custom/anhui-mobile的遠端父分支設定為遠端分支custom/ref_stable_2.4/china_mobile
15. 其他注意事項
git checkout -b [分支名] [遠端名]/[分支名]
$ git checkout --track origin/serverfix
刪除遠端分支:
git push [遠端名] :[分支名]
git pull 遠端倉庫名 遠端分支:本地分支
git push 遠端倉庫名 遠端分支:本地分支
git checkout -b 分支名 遠端倉庫名/分支名
git檢視、刪除、重新命名遠端分支和tag:
git 基本用法
git相對於其他的版本控制,優勢在於分支管理。幾個常見情況及分支使用方法。1 對於自己的 修改後,卻已經不知道伺服器上的 是否已經發生改變。此時想上傳自己的 1 在master上建立分支mysrc 2 switch到mysrc分支,進行修改 3 修改好 後,進行git commit操作 4 swit...
GIT基本用法
下面是乙個在本地建立乙個git庫的步驟 1 初始化倉庫,並配置一些必要的變數 git init git config global user.name wensf git config global user.email wensf manridy.com 2 新增檔案過濾規則檔案 可選 檔名為 g...
Git基本用法
首次設定 git config global user.name 名字 git config global user.email email 複製 初始化git倉庫 目錄下沒有.git資料夾 git init 複製 git remote add origin 專案位址 複製 git clone 專案...