本地倉庫如何與遠程倉庫交互

遠程分支與本地分支的交互

1:當執行完git clone克隆完某個遠程倉庫後,本地的倉庫狀態如下圖:
在這裏插入圖片描述
origin/master: 你克隆的時間點遠程倉庫master分支的指向。
master:git自動爲你創建master分支,並確定初始指向與遠程倉庫master分支是一樣的。

2:接着其他人向該遠程倉庫master分支推送了信息,於是遠程倉庫的指向變爲了這樣。
在這裏插入圖片描述
3:你自己也對本地的master分支進行了開發,於是本地倉庫狀態變爲了這樣:
在這裏插入圖片描述
需要注意的是,一旦克隆之後,如果本地倉庫不與遠程倉庫通訊,origin/master的指向是不會變的。

4:此時,遠程倉庫的狀態與你之前克隆時已經不一樣了,那麼該如何將你的內容推送到遠程倉庫呢?答案:首先執行 git fetch origin (origin是遠程倉庫名),執行後本地倉庫狀態變爲這樣。
可知 git fetch origin 的作用:將本地分支分叉,拉取遠程新狀態,改變origin/master的指向。
在這裏插入圖片描述
5:接着你要做的就是本地分支合併
! git checkout master //切換分支到master
!! git merge origin/master //將origin/master分支合併到master分支上

6:將本地master分支推送到遠程倉庫master分支上。
執行 git push origin master

小結:
1:這裏說下 跟蹤分支
git push 的完整命令格式是這樣的:

git push [remote-name] [branch-name] //推送分支到遠程 remote-name: 遠程倉庫名稱, branch-name: 本地要推送的分支名稱

該命令並沒有指定遠程分支名稱,也許你會有疑問 git push origin master 之後,是怎麼確定內容推送到遠程哪個分支?這就和跟蹤分支有關了。

當執行完git clone之後,本地的master就默認是遠程master分支的跟蹤分支,推送本地master分支之後,會自動推送到遠程master分支上。

如何設置其他分支的跟蹤分支呢?

下面三個方法是設置跟蹤分支

git checkout -b [branch][remotename]/[branch]

git checkout --track origin/serverfix //這種方式是第一種的快捷寫法

git checkout -b sf origin/serverfix //這種方式是爲本地分支設置別名的創建跟蹤分支的方式。

git branch -vv // 本地倉庫分支與遠程倉庫分支進行對比信息

git fetch --all //拉取全部的分支

git push origin --delete serverfix //推送後刪除遠程分支

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