git將遠程分支拉取到本地,或者將本地分支推送到遠程

https://git-scm.com/book/zh/v2/Git-%E5%88%86%E6%94%AF-%E8%BF%9C%E7%A8%8B%E5%88%86%E6%94%AF

git pull origin 遠程分支名:本地分支名

命令格式如上,git pull origin是固定的部分,後面接遠程分支名(只需要加上分支名就好,其他的一些remote等不需要),冒號後面接本地分支名。

 

推送

本地分支推送到遠程:

當你想要公開分享一個分支時,需要將其推送到有寫入權限的遠程倉庫上。 本地的分支並不會自動與遠程倉庫同步——你必須顯式地推送想要分享的分支。 這樣,你就可以把不願意分享的內容放到私人分支上,而將需要和別人協作的內容推送到公開分支。

如果希望和別人一起在名爲 serverfix 的分支上工作,你可以像推送第一個分支那樣推送它。 運行 git push <remote> <branch>:

git push origin serverfix

 這裏有些工作被簡化了。 Git 自動將 serverfix 分支名字展開爲 refs/heads/serverfix:refs/heads/serverfix

意味着,“推送本地的 serverfix 分支來更新遠程倉庫上的 serverfix 分支 

也可以運行 git push origin serverfix:serverfix, 它會做同樣的事——也就是說“推送本地的 serverfix 分支,將其作爲遠程倉庫的 serverfix 分支” 可以通過這種格式來推送本地分支到一個命名不相同的遠程分支。如果並不想讓遠程倉庫上的分支叫做 serverfix,可以運行 git push origin serverfix:awesomebranch 來將本地的 serverfix 分支推送到遠程倉庫上的 awesomebranch 分支。 

 

拉取

下一次其他協作者從服務器上抓取數據時,他們會在本地生成一個遠程分支 origin/serverfix,指向服務器的 serverfix 分支的引用:

 git fetch origin

要特別注意的一點是當抓取到新的遠程跟蹤分支時,本地不會自動生成一份可編輯的副本(拷貝)。 換一句話說,這種情況下,不會有一個新的 serverfix 分支——只有一個不可以修改的 origin/serverfix 指針。

 

 可以運行 git merge origin/serverfix 將這些工作合併到當前所在的分支。

 如果想要在自己的 serverfix 分支上工作,可以將其建立在遠程跟蹤分支之上:

git checkout -b serverfix origin/serverfix

 

 

設置已有的本地分支跟蹤一個剛剛拉取下來的遠程分支,或者想要修改正在跟蹤的上游分支, 你可以在任意時間使用 -u 或 --set-upstream-to 選項運行 git branch 來顯式地設置。

$ git branch -u origin/serverfix

 

 

git featch 和git pull 的區別

當 git fetch 命令從服務器上抓取本地沒有的數據時,它並不會修改工作目錄中的內容。 它只會獲取數據然後讓你自己合併。 然而,有一個命令叫作 git pull 在大多數情況下它的含義是一個 git fetch 緊接着一個 git merge 命令。 如果有一個像之前章節中演示的設置好的跟蹤分支,不管它是顯式地設置還是通過 clone 或 checkout 命令爲你創建的,git pull 都會查找當前分支所跟蹤的服務器與分支, 從服務器上抓取數據然後嘗試合併入那個遠程分支。

由於 git pull 的魔法經常令人困惑所以通常單獨顯式地使用 fetch 與 merge 命令會更好一些。

 

刪除遠程分支

假設你已經通過遠程分支做完所有的工作了——也就是說你和你的協作者已經完成了一個特性, 並且將其合併到了遠程倉庫的 master 分支(或任何其他穩定代碼分支)。 可以運行帶有 --delete 選項的 git push 命令來刪除一個遠程分支。 如果想要從服務器上刪除 serverfix 分支,運行下面的命令:

git push origin --delete serverfix

 基本上這個命令做的只是從服務器上移除這個指針。 Git 服務器通常會保留數據一段時間直到垃圾回收運行,所以如果不小心刪除掉了,通常是很容易恢復的。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章