1. 程式人生 > >git 關於分支,關於遠端分支,關於push pull 的時機

git 關於分支,關於遠端分支,關於push pull 的時機

遠端分支(remote branch)是對遠端倉庫狀態的索引。它們是一些無法移動的本地分支;只有在進行 Git 的網路活動時(push ,pull,fetch clong)才會更新。遠端分支就像是書籤,提醒著你上次連線遠端倉庫時上面各分支的位置。

         我們用 (遠端倉庫名)/(分支名) 這樣的形式表示遠端分支。比如我們想看看上次同 origin 倉庫通訊時 master 的樣子,就應該檢視 origin/master 分支。如果你和同伴一起修復某個問題,但他們先推送了一個 iss53 分支到遠端倉庫,雖然你可能也有一個本地的 iss53 分支,但指向伺服器上最新更新的卻應該是 origin/iss53

分支。

      假設你們團隊有個地址為 git.ourcompany.com 的 Git 伺服器。如果你從這裡克隆,Git 會自動為你將此遠端倉庫命名為 origin ,並下載其中所有的資料,建立一個指向它的 master 分支的指標,在本地命名為 origin/master ,但你無法在本地更改其資料。接著,Git 建立一個屬於你自己的本地 master 分支,始於 originmaster 分支相同的位置,你可以就此開始工作(如下圖)

要是你在本地 master 分支做了會兒事情,與此同時,其他人向 git.ourcompany.com 推送了內容,更新了上面的 master

分支,那麼你的提交歷史會開始朝不同的方向發展。不過只要你不和伺服器通訊,你的 origin/master 指標不會移動 (如下圖)

        我們這個時候是不能進行push 操作的,因為我們的origin/master 指標並不與伺服器上的master  指標同步,也就是說我們過時了,

要進行push 操作,我們需要下載伺服器上的最新原始碼,在本地進行合併後,進行push .

可以執行 git fetch origin 來進行同步。該命令首先找到 origin 是哪個伺服器(本例為 git.ourcompany.com ),從上面獲取你尚未擁有的資料,更新你本地的資料庫,然後把 origin/master

的指標移到它最新的位置(見圖 3-24)。

為了演示擁有多個遠端分支(不同的遠端伺服器)的專案是個什麼樣,我們假設你還有另一個僅供你的敏捷開發小組使用的內部伺服器 git.team1.ourcompany.com 。可以用第二章中提到的 git remote add 命令把它加為當前專案的遠端分支之一。我們把它命名為 teamone ,表示那一整串 Git 地址(見圖 3-25)。

現在你可以用 git fetch teamone 來獲取小組伺服器上你還沒有的資料了。由於當前該伺服器上的內容是你 origin 伺服器上的子集,Git 不會下載任何資料,而只是簡單地建立一個名為 teamone/master 的分支來指向 teamone 伺服器上 master 所指向的更新 31b8e (見圖 3-26)。

要想和其他人分享某個分支,你需要把它推送到一個你擁有寫許可權的遠端倉庫。你的本地分支不會被自動同步到你引入的遠端分支中,除非你明確執行推送操作。換句話說,對於無意分享的,你儘可以保留為私人分支,而只推送那些協同工作的特性分支。

然後進行merge 操作,將master  與origin/master 合併成為一條線,將這條線push 到origin伺服器上。

=================================================================================

push操作    (語法git push  伺服器   本地分支:遠端分支)

[email protected] repos $ git push origin master     是git push origin master:master的簡寫
Counting objects: 3, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 226 bytes, done.
Total 2 (delta 1), reused 0 (delta 0)
Unpacking objects: 100% (2/2), done.
To /home/git/repos.git/
   585c480..bb7e69f  master -> master
[email protected] repos $ git push origin master:master
Everything up-to-date

git checkout -b test2

等同於git branch test2

          git checkout test2 兩條命令

============================================================================

關於fetch ,merge ,pull

我們想把origin 上的test2 分支合併到本地的master 分支上

==============================================================================

跟蹤分支

從遠端分支檢出的本地分支,稱為_跟蹤分支(tracking branch)_。跟蹤分支是一種和遠端分支有直接聯絡的本地分支。在跟蹤分支裡輸入 git push ,Git 會自行推斷應該向哪個伺服器的哪個分支推送資料。反過來,在這些分支裡執行 git pull 會獲取所有遠端索引,並把它們的資料都合併到本地分支中來。

在克隆倉庫時,Git 通常會自動建立一個 master 分支來跟蹤 origin/master 。這正是 git pushgit pull 一開始就能正常工作的原因。當然,你可以隨心所欲地設定為其它跟蹤分支,比如 origin 上除了 master 之外的其它分支。剛才我們已經看到了這樣的一個例子:git checkout -b [分支名] [遠端名]/[分支名] 。如果你有 1.6.2 以上版本的 Git,還可以用 --track 選項簡化:

$ git checkout --track origin/serverfix       (作用與 git checkout -b serverfix    origin/serverfix 同  ,在本地建立一個同名的serverfix 分支,與origin/serverifix 同步)



Branch serverfix set up to track remote branch refs/remotes/origin/serverfix.

Switched to a new branch "serverfix"

[email protected] repos $
git checkout -b test2222 origin/test2


Branch test2222 set up to track remote branch test2 from origin.

Switched to a new branch 'test2222'

[email protected] repos $
git push (預設向origin/test2 推資料)


Everything up-to-date







刪除遠端分支

如果不再需要某個遠端分支了,比如搞定了某個特性並把它合併進了遠端的 master 分支(或任何其他存放穩定程式碼的地方),可以用這個非常無厘頭的語法來刪除它:git push [遠端名] :[分支名] 如果想在伺服器上刪除 serverfix 分支,執行下面的命令:

$ git push origin : serverfix

To [email protected]:schacon/simplegit.git

- [deleted] serverfix

咚!伺服器上的分支沒了。你最好特別留心這一頁,因為你一定會用到那個命令,而且你很可能會忘掉它的語法。有種方便記憶這條命令的方法:記住我們不久前見過的 git push [遠端名] [本地分支]:[遠端分支] 語法,如果省略 [本地分支] ,那就等於是在說“在這裡提取空白然後把它變成[遠端分支] ”。

相關推薦

Git 本地分支遠端分支的建立刪除推送合併

檢視分支情況 git branch -a 建立本地分支dev git checktout -b dev 刪除本地分支dev git branch -d dev 如果有改動,強制刪除本地分支dev git branch -D dev 刪除遠端分支dev

git 推送本地分支遠端分支 git push origin

推送本地分支local_branch到遠端分支 remote_branch並建立關聯關係       a.遠端已有remote_branch分支並且已經關聯本地分支local_branch且本地已經切換到local_branch           git pus

gitpush時建立本地分支遠端分支的聯絡

在進行git push 時遇到的問題:fatal: The current branch adf has no upstream branch.查看了一下本地分支和遠端分支的關聯關係,發現newdev這個本地分支是沒有和遠端分支關聯上的。dev

git 刪除 本地分支遠端分支 出現的問題

將分支合併到 master 後,我們需要刪除無用分支,本地刪除比較簡單: git branch -d/-D xxx 但是,有些分支,我們可能也是多人開發,推送到了遠端測試伺服器上,我們也需要刪除遠端的廢棄分支: 1.先在本地刪除分支 git branch -d xxx 2.推送給遠端倉

git 實現提交遠端分支步驟

git clone git branch [分支名] 建立分支 git branch 檢視本地所有分支 git checkout [分支名稱] 切換分支 ---寫程式碼--- git status (檢視檔案改變記錄) git diff (檢視程式碼級改變) git add (1:確認改

git本地分支遠端分支如何關聯

轉自原文地址https://www.jianshu.com/p/d2fc2e212d1a 一、如何把本地新建分支同步到遠端分支上(注:該分支在遠端上沒有)? 二、又如何在本地把遠端分支上新建分支同步到本地(本地沒有該分支)? 1.其實在從遠端分支分出來的分支都是跟蹤分支(track),當對該

git本地切換遠端分支

在使用git的時候,很多時候需要切換遠端分支。但是使用git clone只能clone master分支。 解決辦法如下: 1. 找一個乾淨目錄如new_dir 2. cd new_dir 3. git clone http://myrepo.xxx.com/project/.git&

git 分支管理 推送本地分支遠端分支

1,把本地分支推送到遠端 $ git push origin Dev-special 2,刪除遠端分支 $ git push origin :Dev-special3,建立本地分支 $ g

git 分支管理 推送本地分支遠端分支

1、建立本地分支 local_branch      git branch local_branch 2、建立本地分支local_branch 並切換到local_branch分支    git checkout -b local_branch 3、切換到分支local

git 建立分支以及 推送分支遠端分支

直接建立本地分支git branch 分支名,可能報錯 fatal: Not a valid object name: ‘master‘. 解決方法:  $ git add .  $ ls  $ git commit -m "your comment" $ git bra

Git本地分支遠端分支關聯問題(git branch --set-upstream-to=origin/ )

Git在本地新建分支後,必須要做遠端分支關聯。關聯目的是如果在本地分支下進行git pull 和 git push操作時 ,不需要指定在命令列指定遠端的分支. 推送到遠端分支時,沒有關聯的情況下而且沒有指定, git pull 的時候,就會提示你如下資訊: M

git 本地分支遠端分支關聯的一種方法

github上已經有master分支 和dev分支 在本地 git checkout -b dev 新建並切換到本地dev分支 git pull origin dev 本地分支與遠端分支相關聯 在本地新建分支並推送到遠端 git checkout -b test

git 基本操作 git 刪除本地分支遠端分支、原生代碼回滾和遠端程式碼庫回滾

git 刪除本地分支和遠端分支、原生代碼回滾和遠端程式碼庫回滾   【git 刪除本地分支】 git branch -D br   【git 刪除遠端分支】 git push origin :br  (origin

git 分支合併 提交本地分支遠端分支相關命令

建立分支 git branch localbranch 切換分支 git checkout localbranch 建立分支並切換到該分支,等效於上面兩個命令都執行 git checkout -b localbranch 在本地更改完分支的

git 刪除本地分支遠端分支

git上面的分支開發完成以後,完成了他的歷史使命,就可以刪除了。 1.刪除本地分支 檢視本地分支 git branch add_jvm_config_and_exception_log hdfs

git拉取遠端分支並建立本地分支Git中從遠端分支獲取最新的版本到本地

git拉取遠端分支並建立本地分支一、檢視遠端分支使用如下Git命令檢視所有遠端分支:git branch -r二、拉取遠端分支並建立本地分支方法一使用如下命令:git checkout -b 本地分支名x origin/遠端分支名x$ git checkout -b hhhh

git 拉取遠端分支

git拉取遠端專案,簡單的方法是我們cd到我們要存放專案的目錄,然後git clone [email protected]:a/trds.git,假如我們的專案地址在[email protected]:a/trds.git上,這裡是胡亂編的一個地址.整個流

git拉取遠端分支並與本地分支合併

1.提交程式碼到本地庫 [email protected]:~/Desktop/se-CourseSelect$ git status [email protected]:~/Desktop/se-CourseSelect$ git add . [email

git 本地倉庫和遠端倉庫及本地分支遠端分支

從遠端git倉庫簽出程式碼:   $ git clone git://aaa.com/git_project.git (遠端git伺服器專案所在地址) 當你需要克隆遠端專案到本地時,預設會把專案儲存在名為 git_project 資料夾下面. 你也可以指定本地的一個空資料夾ccc git clone git

git 提交到遠端分支

git status 檢視狀態,紅色的為未暫存 git add * 將修改的所有檔案新增 git commit -m '移除test資料夾'  放置暫存區 git push origi