git branch

查看分支:
        $ git branch    該命令會類出當先項目中的所有分支信息,其中以*開頭的表示當前所在的分支。參數-r列出遠程倉庫中的分支,而-a則遠程與本地倉庫的全部分支。
創建新分支:
        $ git branch testing    創建一個名爲testing的分支

切換分支:
        $ git checkout teting   切換到testing分支上。通過向該命令傳遞一個-b參數,可以實現創建並切換分支的功能。

合併分支:
        $ git merge hotfix      將hotfix分支合併到當前分支當中去

刪除分支:
        $ git branch -d hotfix  刪除分支hotfix,-d選項只能刪除已經被當前分支所合併過的分支,而要強制刪除沒有被合併過的分支,可以使用-D。

重命名分支:
        $ git branch -m oldbranch newbranch     -M用來強制重命名,如newbranch已經存在的時候。

查看分支之間的不同:
        $ git diff branchName   查看當前分支與branchName分支之間的差異,也可以使用:$ git diff branch1 branch2 來比較這1和2分支之間的差異,當使用第一種方式比較時,如果當前工作目錄中存在與branchName同名的文件,系統則會提示錯誤,要是指明要比較的是文件還是分支,如果比較分支,可以進入.git中進行比較或切換分支,如果是>比較文件,則使用$ git diff -- fileName命令。
        $ git diff <branchA>:<fileA> <branchB>:<fileB>
        $ git ls-tree -r branch 列出所有的樹對象

合併衝突:
    如果在不同的分支中都修改了同一個文件的同一部分,Git 就無法乾淨地把兩者合到一起(譯註:邏輯上說,這種問題只能由人來裁決。)
    任何包含未解決衝突的文件都會以未合併(unmerged)的狀態列出。Git 會在有衝突的文件里加入標準的衝突解決標記,可以通過它們來手工定位並解決這些衝突。
    在解決了所有文件裏的所有衝突後,運行 git add 將把它們標記爲已解決狀態(譯註:實際上就是來一次快照保存到暫存區域。)。因爲一旦暫存,就表示衝突已經解決。如
果你想用一個有圖形界面的工具來解決這些問題,不妨運行 git mergetool,它會調用一個可視化的合併工具並引導你解決所有衝突。
    要從該清單中篩選出你已經(或尚未)與當前分支合併的分支,可以用 --merge 和 --no-merged 選項(Git 1.5.6 以上版本)。比如用 git branch --merge 查看哪些分支>已被併入當前分支(譯註:也就是說哪些分支是當前分支的直接上游。)

遠程分支:
    遠程分支是對遠程倉庫分支的索引。它們是一些無法移動的本地分支,只有在Git進行網絡交互時纔會更新。我們用(遠程倉庫名)/(分支名)來表示遠程分支。比如想查看上次>同origin倉庫通訊時master的樣子,就應該查看origin/master分支。

推送本地分支:
    $ git push (遠程倉庫名字) (分支名)  如:$ git push orgin serverfix 該命令會將本地serverfix分支推送到origin遠程倉庫的serverfix分支中去,也可以使用命令 $ git push origin serverfix:serferfix實現同樣的效果,可以將第二個serverfix更改爲其它名字來指定要將該本地分支推送到遠程倉庫中的的指定分支中去,如果不存在,則會在
遠程倉庫中新建分支。

獲取遠程分支:
    在使用git clone命令從遠程服務器克隆Git倉庫時,只是將遠程倉庫當前分支的內容克隆到本地,要是克隆其他分支的內容,需要使用下面命令:可通過git branch -r命令來
查看想要獲取的遠程倉庫中的分支。
    $ git fetch origin  值得注意的是,在 fetch 操作下載好新的遠程分支之後,你仍然無法在本地編輯該遠程倉庫中的分支。
    如果要把該內容合併到當前分支,可以運行 git merge origin/serverfix。如果想要一份自己的 serverfix 來開發,可以在遠程分支的基礎上分化出一個新的分支來:
        $ git checkout -b serverfix origin/serverfix
    這會切換到新建的 serverfix 本地分支,其內容同遠程分支 origin/serverfix 一致,這樣你就可以在裏面繼續開發了。

Git pull:
    從服務器的倉庫中獲取代碼,和本地代碼合併。(與服務器交互,從服務器上下載最新代碼,等同於: Git fetch + Git merge)。
    從其它的版本庫(既可以是遠程的也可以是本地的)將代碼更新到本地,例如:“git pull origin master ”就是將origin這個版本庫的代碼更新到本地的master主分支。
       git pull可以從任意一個git庫獲取某個分支的內容。用法如下:
       git pull username@ipaddr: 遠端repository名 遠端分支名:本地分支名。這條命令將從遠端git庫的遠端分支名獲取到本地git庫的一個本地分支中。其中,如果不寫本地
分支名,則默認pull到本地當前分支。
       需要注意的是,git pull也可以用來合併分支。 和git merge的作用相同。 因此,如果你的本地分支已經有內容,則git pull會合並這些文件,如果有衝突會報警。

Git push
    將本地commit的代碼更新到遠程版本庫中,例如 “git push origin”就會將本地的代碼更新到名爲orgin的遠程版本庫中。
       git push和git pull正好想反,是將本地某個分支的內容提交到遠端某個分支上。用法: git pushusername@ipaddr: 遠端repository名 本地分支名:遠端分支名。這條命
令將本地git庫的一個本地分支push到遠端git庫的遠端分支名中。
       需要格外注意的是,git push好像不會自動合併文件。因此,如果git push時,發生了衝突,就會被後push的文件內容強行覆蓋,而且沒有什麼提示。 這在合作開發時是>很危險的事情。

git-clone命令只要碰到類似下面格式的遠程倉庫地址,都會被認爲地址是符合SSH協議的:        賬戶@IP:工作目錄

git checkout -b [分支名] [遠程名]/[分支名]
如果你有 1.6.2 以上版本的 Git,還可以用 --track 選項簡化
        $ git checkout --track origin/serverfix

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

git pull 遠程倉庫名 遠程分支:本地分支
git push 遠程倉庫名 遠程分支:本地分支
git checkout -b 分支名 遠程倉庫名/分支名
發佈了5 篇原創文章 · 獲贊 13 · 訪問量 20萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章