Git 遠端分支的pull與push
遠端分支資訊檢視
git branch -r #檢視遠端分支
git branch -a #檢視所有分支,本地和遠端
git remote show [remote-name] #檢視遠端倉庫資訊
其中git remote show [remote-name]展示的資訊包括:
- 會列出遠端倉庫的 URL 與跟蹤分支的資訊
- 列出了當你在特定的分支上執行 git push 會自動地推送到哪一個遠端分支
- 列出了哪些遠端分支不在你的本地
- 哪些遠端分支已經從伺服器上移除了
- 執行 git pull 時哪些分支會自動合併
- ……
檢出遠端非master分支到本地
git checkout -b local origin/daily/dev
上面的方法可以直接檢出遠端分支到本地,在本地新建local分支,並切換到local分支上,注意本地分支和遠端分支不同名。
這個方法會自動建立遠端分支 /daily/dev
和本地分支local
的跟蹤關係,
通過git
remote show origin
可以看到包含如下資訊:
Local branches configured for 'git pull':
local merges with remote /daily/dev
master merges with remote master
Local ref configured for 'git push':
master pushes to master (up to date)
其中
Local branches configured for 'git pull':
下的就是upstream
跟蹤分支。
可以看出,遠端分支 /daily/dev
和本地分支local
建立了git
pull
的關係,但是沒有建立git
push
的關係。此時如果強行push,不會成功,會出現如下提示:
fatal: The current branch new has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin develop
Git預設push設定
我們知道通過git
clone [email protected]:xxxxx.git
可以建立預設的本地master分支和遠端master分支的pull和push的關係,但是我們無法通過clone命令檢出非master分支,那麼對於非master分支怎麼辦呢?
Git中push.default
可以指定在沒有明確指定遠端分支的情況下,預設push的遠端分支,其取值可以是:
- nothing - push操作無效,除非顯式指定遠端分支(想讓push變得簡單的就不要用這個)
- current - push當前分支到遠端同名分支,如果遠端同名分支不存在則自動建立同名分支(central 和 non-central workflows都適用)
- upstream - push當前分支到它的upstream分支上(通常用於central workflow)
- simple - simple和upstream是相似的(通常用於central workflow),只有一點不同,simple必須保證本地分支和它的遠端 upstream分支同名,否則會拒絕push操作
- matching - push所有本地和遠端兩端都存在的同名分支
central / non-central workflows 是Git的兩種常見工作流場景:
- central workflows - 集中式工作流,一個分支的push和pull都是同一個遠端倉庫
- non-central workflows - 非集中式工作流,一個分支的push和pull可能分別都有不同的遠端倉庫
在Git 2.0之前,push.default
的內建值被設為'matching',2.0之後則被更改為了'simple'。
在瞭解push.default之後,我們有如下幾種比較好的從遠端分支檢出本地分支的方法(基於V2.0+):
解法一
所以如果你只有一個遠端倉庫,且你想檢出的分支名稱和遠端分支不同名(有些管理工具會自動生成比較醜的遠端分支名,類似:/features/2017-03-31-featuresA-1),那麼你可以通過設定push.default 預設推送到pull的遠端分支(upstream 分支):
#檢出重新命名
git checkout -b dev origin/features/2017-03-31-featuresA-1
#設定push.default為upstream
git config --global push.default upstream
#or
git config push.default upstream
#取消設定
git config --unset push.default
解法二
如果不想通過修改upstream,那麼只能通過設定檢出本地分支名稱和遠端分支名稱相同:
git checkout -b <BRANCH-NAME> <REMOTE-NAME>/<BRANCH-NAME>
注意:如果使用git
checkout -b features/feature_1 origin/features/feature_1
檢出,那麼遠端分支名稱是features/feature_1
,而不是origin/features/feature_1
。
解法三
這個也不算什麼解法,但是強烈推薦,就是建立遠端分支的時候,取個好點的名字。
git clone [email protected]:xxxxx.git
#從master建立新分支
git checkout -b dev
#push並建立同名遠端分支
git push origin dev
相關推薦
Git 遠端分支的pull與push
遠端分支資訊檢視 git branch -r #檢視遠端分支 git branch -a #檢視所有分支,本地和遠端 git remote show [remote-name] #檢視遠端倉庫資訊 其中git remote show [remote-name]展示的資
git 關於分支,關於遠端分支,關於push pull 的時機
遠端分支(remote branch)是對遠端倉庫狀態的索引。它們是一些無法移動的本地分支;只有在進行 Git 的網路活動時(push ,pull,fetch clong)才會更新。遠端分支就像是書籤,提醒著你上次連線遠端倉庫時上面各分支的位置。 我們用 (
git 關於分支,關於遠端分支,關於push pull 的時機
遠端分支(remote branch)是對遠端倉庫狀態的索引。它們是一些無法移動的本地分支;只有在進行 Git 的網路活動時(push ,pull,fetch clong)才會更新。遠端分支就像是書籤,提醒著你上次連線遠端倉庫時上面各分支的位置。 我們用
在Idea中使用git從遠端倉庫pull和push檔案
1 開啟idea-> VCS-> import into Version control -> create git repository 2 在本地目錄下建立ignore list 3 寫完程式碼後,右鍵-> git -> 先add,再comm
git拉取遠端分支並與本地分支合併
1.提交程式碼到本地庫 [email protected]:~/Desktop/se-CourseSelect$ git status [email protected]:~/Desktop/se-CourseSelect$ git add . [email
android studio 用git從遠端倉庫pull和push發生的錯誤
發生的錯誤: Push failed: Failed with error: fatal: Could not read from remote repository Fetch failed: fatal: Could not read from remote repos
git遠端分支與本地分支合併
多人協同開發中,經常會遇到這種情況:A在本地開發完成後,將程式碼推送到遠端,這時候B的原生代碼的版本就低於遠端程式碼的版本,這時候B該如何從遠端拉取最新的程式碼,並與自己的原生代碼合併呢? 具體思路:先拉去一份最新的遠端程式碼到本地,然後將本地兩個版本的程式
git 遠端分支相關
1 檢視遠端分支:git branch -a 2 檢視本地分支:git branch 3 建立本地分支: git branch test 4. 分支推到遠端分支 :git push origin test 5 切換分支到test:git check
看完這篇 你就能完全操作git 遠端分支的增、刪、改、查了
最近專案中又用到了git所以在此總結一番,這篇主要針對的是怎麼建立遠端分支,如何刪除遠端分支。 首先,如何建立遠端分支。將一系列前期準備工作準備完成後(建立\新增ssh); 在終端鍵入 git branch -va 可以檢視本地分支與遠端分支的具體情況,當如果是一個新建的專案的時候,顯示,“ * ”號顯示的
git 遠端分支回滾
git程式碼庫回滾: 指的是將程式碼庫某分支退回到以前的某個commit id 【原生代碼庫回滾】: git reset --hard commit-id :回滾到commit-id,講commit-id之後提交的commit都去除 git reset --hard H
訊息佇列的pull與push模式理解
錯誤理解 之所以將這個標題,定義為錯誤理解,原因就是無法真正的說服自己; 訊息佇列的模式有兩種pull與push.先說說我之前的理解: pull模式指,客戶端連線上broker之後,主動發起方法呼叫獲取遠端的結果,說的直白一點就是一次RPC呼叫,即同步方
git 的分支合併與分支的流走
首先從這張圖開始我今天的git分支的行走情況:一般的git環境,一般包含master分支,dev開發分支,test測試分支,一般都是test通過的程式碼才能放到master中,所有我們的一般開發一個新的功能,都是從master中拉取程式碼,這個程式碼基本和線上的程
如何將git遠端分支更新到本地
(1)先下載 git clone URL (2)再切換到分支JarSample git checkout JarSample (3)從遠端的origin倉庫的master分支下載程式碼到本地的origin JarSample git fetch origin JarSample (4)強制更新,
無法刪除git遠端分支的問題
當刪除遠端分支時,可能會出錯以下的錯誤: $ git push origin :alpha remote: error: By default, deleting the current branch is denied, because the next remote:
git 遠端分支版本回退
方法: git reset --hard commit_id(可用 git log –oneline 檢視) ###原生代碼回退 git push origin HEAD --force ###遠端提交回退 或者 git reset --hard HEAD~1 git pu
git遠端分支操作
這篇文章記錄我在使用git的過程中碰到遠端分支和tag的相關內容,提綱: 檢視遠端分支刪除遠端分支和tag刪除不存在對應遠端分支的本地分支重新命名遠端分支把本地tag推送到遠端獲取遠端tag 檢視遠端分支 加上-a引數可以檢視遠端分支,遠端分支會用紅色表示出來(如果你開
git遠端分支覆蓋本地分支
有時候同一個分支,遠端的和本地的都被修改的面目全非了,如果想要把本地的替換成遠端的,用下面的命令 git fetch --all git reset --hard origin/master (這裡master要修改為對應的分支名) git pull
git操作之pull拉取遠端指定分支以及push推送到遠端指定分支
一、pull操作 1、將遠端指定分支 拉取到 本地指定分支上: git pull <遠端倉庫名> <遠端分支名>:<本地分支名> 2、將遠端指定分支 拉取到 本地當前分支上: git pull <遠端倉庫名>
git提交原生代碼到遠端倉庫之前沒有pull導致push失敗解決辦法
git push錯誤failed to push some refs to的解決 當我們在github版本庫中發現一個問題後,你在github上對它進行了線上的修改;或者你直接在github上的某個庫中新增readme檔案或者其他什麼檔案,但是沒有對本地庫進行同步。這個時候當你再次有commit
git push 本地專案推送到遠端分支
大家有的時候,會在本地新建專案,這裡說一下在本地專案建立本地GIT中倉庫,然後推到遠端倉庫的步驟 1.在本地專案的資料夾下,GIT中倉庫初始化 初始化本地的Git倉庫 2。 將本地檔案索引新增至混帳庫中 3。 4。