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
分支,始於 origin
上 master
分支相同的位置,你可以就此開始工作(如下圖)
要是你在本地 master
分支做了會兒事情,與此同時,其他人向 git.ourcompany.com
推送了內容,更新了上面的 master
origin/master
指標不會移動 (如下圖)
我們這個時候是不能進行push 操作的,因為我們的origin/master 指標並不與伺服器上的master 指標同步,也就是說我們過時了,
要進行push 操作,我們需要下載伺服器上的最新原始碼,在本地進行合併後,進行push .
可以執行 git fetch origin
來進行同步。該命令首先找到 origin
是哪個伺服器(本例為 git.ourcompany.com
),從上面獲取你尚未擁有的資料,更新你本地的資料庫,然後把 origin/master
為了演示擁有多個遠端分支(不同的遠端伺服器)的專案是個什麼樣,我們假設你還有另一個僅供你的敏捷開發小組使用的內部伺服器 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 push
和 git 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
git在push時建立本地分支和遠端分支的聯絡
在進行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