PHP技術(shù)交流群 170855791
查看分支:
$ git branch 該命令會(huì )類(lèi)出當先項目中的所有分支信息,其中以*開(kāi)頭的表示當前所在的分支。參數-r列出遠程倉庫中的分支,而-a則遠程與本地倉庫的全部分支。
創(chuàng )建新分支:
$ git branch testing 創(chuàng )建一個(gè)名為testing的分支
切換分支:
$ git checkout teting 切換到testing分支上。通過(guò)向該命令傳遞一個(gè)-b參數,可以實(shí)現創(chuàng )建并切換分支的功能。
合并分支:
$ git merge hotfix 將hotfix分支合并到當前分支當中去
刪除分支:
$ git branch -d hotfix 刪除分支hotfix,-d選項只能刪除已經(jīng)被當前分支所合并過(guò)的分支,而要強制刪除沒(méi)有被合并過(guò)的分支,可以使用-D。
重命名分支:
$ git branch -m oldbranch newbranch -M用來(lái)強制重命名,如newbranch已經(jīng)存在的時(shí)候。
查看分支之間的不同:
$ git diff branchName 查看當前分支與branchName分支之間的差異,也可以使用:$ git diff branch1 branch2 來(lái)比較這1和2分支之間的差異,當使用第一種方式比較時(shí),如果當前工作目錄中存在與branchName同名的文件,系統則會(huì )提示錯誤,要是指明要比較的是文件還是分支,如果比較分支,可以進(jìn)入.git中進(jìn)行比較或切換分支,如果是>比較文件,則使用$ git diff -- fileName命令。
$ git diff <branchA>:<fileA> <branchB>:<fileB>
$ git ls-tree -r branch 列出所有的樹(shù)對象
合并沖突:
如果在不同的分支中都修改了同一個(gè)文件的同一部分,Git 就無(wú)法干凈地把兩者合到一起(譯注:邏輯上說(shuō),這種問(wèn)題只能由人來(lái)裁決。)
任何包含未解決沖突的文件都會(huì )以未合并(unmerged)的狀態(tài)列出。Git 會(huì )在有沖突的文件里加入標準的沖突解決標記,可以通過(guò)它們來(lái)手工定位并解決這些沖突。
在解決了所有文件里的所有沖突后,運行 git add 將把它們標記為已解決狀態(tài)(譯注:實(shí)際上就是來(lái)一次快照保存到暫存區域。)。因為一旦暫存,就表示沖突已經(jīng)解決。如
果你想用一個(gè)有圖形界面的工具來(lái)解決這些問(wèn)題,不妨運行 git mergetool,它會(huì )調用一個(gè)可視化的合并工具并引導你解決所有沖突。
要從該清單中篩選出你已經(jīng)(或尚未)與當前分支合并的分支,可以用 --merge 和 --no-merged 選項(Git 1.5.6 以上版本)。比如用 git branch --merge 查看哪些分支>已被并入當前分支(譯注:也就是說(shuō)哪些分支是當前分支的直接上游。)
遠程分支:
遠程分支是對遠程倉庫分支的索引。它們是一些無(wú)法移動(dòng)的本地分支,只有在Git進(jìn)行網(wǎng)絡(luò )交互時(shí)才會(huì )更新。我們用(遠程倉庫名)/(分支名)來(lái)表示遠程分支。比如想查看上次>同origin倉庫通訊時(shí)master的樣子,就應該查看origin/master分支。
推送本地分支:
$ git push (遠程倉庫名字) (分支名) 如:$ git push orgin serverfix 該命令會(huì )將本地serverfix分支推送到origin遠程倉庫的serverfix分支中去,也可以使用命令 $ git push origin serverfix:serferfix實(shí)現同樣的效果,可以將第二個(gè)serverfix更改為其它名字來(lái)指定要將該本地分支推送到遠程倉庫中的的指定分支中去,如果不存在,則會(huì )在
遠程倉庫中新建分支。
獲取遠程分支:
在使用git clone命令從遠程服務(wù)器克隆Git倉庫時(shí),只是將遠程倉庫當前分支的內容克隆到本地,要是克隆其他分支的內容,需要使用下面命令:可通過(guò)git branch -r命令來(lái)
查看想要獲取的遠程倉庫中的分支。
$ git fetch origin 值得注意的是,在 fetch 操作下載好新的遠程分支之后,你仍然無(wú)法在本地編輯該遠程倉庫中的分支。
如果要把該內容合并到當前分支,可以運行 git merge origin/serverfix。如果想要一份自己的 serverfix 來(lái)開(kāi)發(fā),可以在遠程分支的基礎上分化出一個(gè)新的分支來(lái):
$ git checkout -b serverfix origin/serverfix
這會(huì )切換到新建的 serverfix 本地分支,其內容同遠程分支 origin/serverfix 一致,這樣你就可以在里面繼續開(kāi)發(fā)了。
Git pull:
從服務(wù)器的倉庫中獲取代碼,和本地代碼合并。(與服務(wù)器交互,從服務(wù)器上下載最新代碼,等同于: Git fetch + Git merge)。
從其它的版本庫(既可以是遠程的也可以是本地的)將代碼更新到本地,例如:“git pull origin master ”就是將origin這個(gè)版本庫的代碼更新到本地的master主分支。
git pull可以從任意一個(gè)git庫獲取某個(gè)分支的內容。用法如下:
git pull username@ipaddr: 遠端repository名 遠端分支名:本地分支名。這條命令將從遠端git庫的遠端分支名獲取到本地git庫的一個(gè)本地分支中。其中,如果不寫(xiě)本地
分支名,則默認pull到本地當前分支。
需要注意的是,git pull也可以用來(lái)合并分支。 和git merge的作用相同。 因此,如果你的本地分支已經(jīng)有內容,則git pull會(huì )合并這些文件,如果有沖突會(huì )報警。
Git push
將本地commit的代碼更新到遠程版本庫中,例如 “git push origin”就會(huì )將本地的代碼更新到名為orgin的遠程版本庫中。
git push和git pull正好想反,是將本地某個(gè)分支的內容提交到遠端某個(gè)分支上。用法: git pushusername@ipaddr: 遠端repository名 本地分支名:遠端分支名。這條命
令將本地git庫的一個(gè)本地分支push到遠端git庫的遠端分支名中。
需要格外注意的是,git push好像不會(huì )自動(dòng)合并文件。因此,如果git push時(shí),發(fā)生了沖突,就會(huì )被后push的文件內容強行覆蓋,而且沒(méi)有什么提示。 這在合作開(kāi)發(fā)時(shí)是>很危險的事情。
git-clone命令只要碰到類(lèi)似下面格式的遠程倉庫地址,都會(huì )被認為地址是符合SSH協(xié)議的: 賬戶(hù)@IP:工作目錄
git checkout -b [分支名] [遠程名]/[分支名]
如果你有 1.6.2 以上版本的 Git,還可以用 --track 選項簡(jiǎn)化
$ git checkout --track origin/serverfix
刪除遠程分支:
git push [遠程名] :[分支名]
git pull 遠程倉庫名 遠程分支:本地分支
git push 遠程倉庫名 遠程分支:本地分支
git checkout -b 分支名 遠程倉庫名/分支名
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請
點(diǎn)擊舉報。