1. 程式人生 > >git 合併遠端分支(帶衝突)

git 合併遠端分支(帶衝突)

應用場景

團隊中兩人同時fetch了一個分支。 第一個人修改後提交,第二個人提交就失敗。失敗資訊如下:

error: failed to push some refs to '[email protected]:jacarrichan/jacarrichan.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

雖然使用“git push -f  ”也可以提交,但是會將remote上第一個人的改動沖掉,太暴力了,不太好。下面說的是手動合併.  

解決辦法

1,獲取遠端分支更新,也就是第一個人提交的:

git fetch origin
2,嘗試由git帶來的自動合併:
git merge origin/master     ##將origin/master合併到當前分支
如果兩個分支的內容有差異,否則提示合併失敗。
Auto-merging README.md
CONFLICT (content): Merge conflict in README.md
Automatic merge failed; fix conflicts and then commit the result.


看下當前的狀態,尋找幫助資訊:
[email protected] /F/temp/mvn/jacarrichan (master|MERGING)
$ git status
# On branch master
# You have unmerged paths.
#   (fix conflicts and run "git commit")
#
# Unmerged paths:
#   (use "git add <file>..." to mark resolution)
#
#       both modified:      README.md
#
no changes added to commit (use "git add" and/or "git commit -a")


現在我們再來看一下工作目錄裡的“README.md”檔案的內容:

[email protected] /F/temp/mvn/jacarrichanc (master|MERGING)
$ cat README.md
#jacarrichan




Only for ochina git test.


<<<<<<< HEAD
這是第二個人提交的......................
=======
這是第一個人提交的
>>>>>>> origin/master


![我的部落格](http://service.t.sina.com.cn/widget/qmd/1597668397/99810a10/1.png ""
)

“<<<<<<< HEAD“下面就是當前版本里的內容;而“=======”之下,“>>>>>>>origin/master”之上則表示測試分支裡與之對應的有衝突的容。修復衝突時我們要做的,一般就是把“ <<<<<<< HEAD”,“=======”和“ >>>>>>> test”這些東東先去掉,然後把程式碼改成我們想要的內容。

需安裝配置BeyondCompare,下載地址 

配置 .gitconfig :C:\Users\${user.home}\.gitconfig

[diff]   
    tool = bc3
[difftool "bc3"]   
    cmd = \"D:/application/BeyondCompare/BCompare.exe\" \"$LOCAL\" \"$REMOTE\"  
    trustExitCode = true	
[difftool]   
    prompt = false   
[merge]
    tool = bc4   
[mergetool "bc4"]   
    cmd = \"D:/application/BeyondCompare/BCompare.exe\" \"$LOCAL\" \"$REMOTE\" \"$BASE\" \"$MERGED\"   
    trustExitCode = true
手動合併
[email protected] /F/temp/mvn/jacarrichanc (master|MERGING)
$ git mergetool  README.md
Merging:
README.md

Normal merge conflict for 'README.md':
  {local}: modified file
  {remote}: modified file
Hit return to start merge resolution tool (bc4):

備註:圖片上方的三個深藍色圈住的和配置檔案中的這個對應“ \"$LOCAL\" \"$REMOTE\" \"$BASE\" \"$MERGED\"”.


 按照上述規則,我選擇把雙方的內容都新增進來,你採納第一個或者另外寫別的內容都可以。  儲存後重新提交就順利.

相關推薦

git 合併遠端分支(衝突)

應用場景 團隊中兩人同時fetch了一個分支。 第一個人修改後提交,第二個人提交就失敗。失敗資訊如下: error: failed to push some refs to '[email protected]:jacarrichan/jacarrichan.g

git 合併遠端分支

假設遠端分支 dev-by-wbw  本地分支dev-by-wgg 在本地新建一個與遠端的分支dev-by-wbw相同(被合併的版本)的分支dev-by-wbw git checkout - b origin/dev-by-wbw 將遠端分支程式碼pull到本地,然後切回本地自己的分

git合併遠端拉取的分支與本地修改的分支

可以先用git stash暫存本地修改的部分,然後使用git pull拉取遠端分支,隨後使用git stash pop彈出本地修改部分,此時git會自動合併。 如果出現CONFLICT (content): Merge conflict in XX可以使用git merge

git 切換遠端分支

git clone只能clone遠端庫的master分支,無法clone所有分支,解決辦法如下: 1. 找一個乾淨目錄,假設是git_work 2. cd git_work 3. git clone  http://myrepo.xxx.com/project/.g

git 檢視遠端分支最後一次提交時間

  背景     因為工程建立時間很長了,專案又特別多,導致程式碼庫中遠端分支有100多。想要清理一下遠端分支,但又不能盲目的刪除,需要一定的參考資訊。     可以通過程式碼最後提交時間來進行判斷,但是100多個分支,一個一個看不現實。可以通過下面的指令碼實現,上面是

git刪除遠端分支和本地分支以及更改本地和分支名字 git-更改本地和遠端分支的名稱

問題描述:       當我們集體進行專案時,將自定義分支push到主分支master之後,如何刪除遠端的自定義分支呢 問題解決:        (1)使用命令git branch -a 檢視所

Git合併某個分支的一個commit到另一個分支

例如要將A分支的一個commit合併到B分支: 首先切換到A分支 git checkout A git log 找出要合併的commit ID : 例如 0128660c08e325d410cb845616af355c0c19c6fe 然後切換到B分支上 gi

git 合併dev分支到 master分支

## 檢視分支列表 $ git branch -a ## 切換到本地dev分支 $ git checkout dev ## 更新本地dev 分支 $ git pull ## 切換到master 分支 $ git check master ## 更新 本地master 分支 $

git切換遠端分支

git如何進行遠端分支切換 git上檢視遠端分支命令: git branch -a  例如:    然後我想切換到daily/1.0.0遠端分支:前提是必須要建立一個本地分支,並讓它和遠端分支進行關聯,git checkout origin/dai

git合併遠端倉庫上的提交記錄

有時候,我們用git提交程式碼時,因為我們的疏忽,會導致同一個問題,修改多次,因為反覆提交多次,最終穩定下來,我們想把git上這些不成熟的提交記錄合成一個終極記錄。例如: git上依次有如下提交(按提交時間從新到舊): 提交記錄k 提交記錄m 提交記錄n4 提交記錄

git 檢視遠端分支、本地分支、建立分支、把分支推到遠端repository、刪除本地分支

本文轉載自: $ git branch -a   * br-2.1.2.2     master     remotes/origin/HEAD -> origin/master     remotes/origin/br-2.1.2.1     remote

git刪除遠端分支檔案,不改變本地檔案

git提交專案時候踩的Git的坑 經歷 由於剛開始沒有設定.gitignore檔案,導致專案中所有的檔案都被提交到了github上面,由此帶來的問題就是有些debug日誌也被提交了上去,對於團隊開發很不友好。 一個錯誤的嘗試 git rm -r --cached "fileName/direction

git遠端分支和tag的操作

本站文章除註明轉載外,均為本站原創或者翻譯。本站文章歡迎各種形式的轉載,但請18歲以上的轉載者註明文章出處,尊重我的勞動,也尊重你的智商;本站部分原創和翻譯文章提供markdown格式原始碼,歡迎使用文章原始碼進行轉載;本文標題:Git檢視、刪除、重新命名遠端分支和tag 2013-01-09:加入刪除

Git遠端分支

【Git】遠端分支 轉載:https://www.cnblogs.com/yangchongxing/p/10239270.html 目錄 ============================ 1、檢視遠端倉庫 2、新增遠端倉庫 3、拉取遠端分支 4、推送到遠端分支 5、重新命名遠端倉庫

git刪除遠端分支檔案

當我們錯誤的 把不需要版本控制的檔案提交到遠端分支上後,需要刪除遠端分支上的檔案,用以下操作即可: git rm -r –cached dirname //刪除遠端資料夾,但保留本地資料夾 git commit -m ‘say something’ //

git push遠端分支error: src refspec xxx does not match any.

error: src refspec xxx does not match any. error: failed to push some refs to 'ssh://[email protected]' 解決方法:git push origin HEAD:

Git 合併分支、提交

1. 分支策略 在實際開發中,我們應該按照幾個基本原則進行分支管理: 首先,master分支應該是非常穩定的,也就是僅用來發布新版本,平時不能在上面幹活; 那在哪幹活呢?幹活都在dev分支上,也就是說,dev分支是不穩定的,到某個時候,比如1.0版本釋出時,再把dev分支合併到master上,在mas

git 刪除遠端分支上的某次提交

使用git管理專案開發的過程中經常會碰到這種情況:某次提交已經push到了遠端倉庫,可是突然意識到“天哪,我怎麼做了這麼蠢的事情”。那麼問題來了,怎麼將遠端程式碼庫回滾呢? 在網上看到大部分人給出的解決方案是先將本地回滾,然後刪除遠端分支,之後再將本地的分

git刪除遠端分支

先檢視遠端分支 git branch -r   使用下面兩條命令來刪除遠端分支 git branch -r -d origin/branch-name   git push origin :branch-

Git檢視遠端分支、本地分支、建立分支、把分支推到遠端repository、刪除本地分支

原文地址:http://blog.csdn.net/arkblue/article/details/9568249/ 1 檢視遠端分支 $ git branch -a   * br-2.1.2.2     master     remotes/origin/HEA