[git]解决 merge 的时候CONFLICT问题

关于 git 的基本使用,可以参考 git-简易指南,这篇介绍了git的基本使用,但是对多人协作的时候,合并冲突的解决没有详细的介绍。本文结合自己使用的场景进行介绍

使用场景:
用户A和B在不同的电脑协同工作,使用github进行代码托管,使用仓库seefeelRepo
A对本地仓库(seefeelRepo)的文件X.txt做出了修改; 
B也对本地仓库的X.txt做出了修改,修改内容与A不同;
A先把本地修改同步到github;
之后,B要同步本地仓库到github,

一,把远端仓库fetch下来,同时merge
B要做的第一件事就是pull
$ git pull origin master
或者,用fetch + merge
$ git fetch orgin
$ git merge master origin/master

这里,origin/master就是远端(github)上面的仓库,master就是本地的仓库

如果有CONFLICT,接下来会提示


二,找到冲突
上面的意思是说, lecture-3存在冲突,自动合并失败,需要手动解决冲突
接下来执行 
$ git diff,它会告诉你那里存在冲突,如下图。


三,解决冲突
接下来,就要编辑这个文件,把冲突的部分解决掉。有必要还要跟协同工作的伙伴沟通一下。
冲突文件大概张成下面的样子

上图中被红框标记的部分,前两个红框之间的部分,是本地的内容。
后两个红框之间的部分,是origin/master远端的内容。怎么修改决定于你。但是最后要把红框红的内容删除


四,CONFLICT解决,同步远端
解决了冲突后,顺序执行add,commit,push到远端
$ git add lecture-3
$ git commit -m “bbbbb"
$ git push origin master
push之后,得到下图所示的内容


这时候如果再用pull指令,会提示already up-to-date


有哪里不清楚,有疑问的,欢迎留言交流 
  • 6
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Eclipse Git用户指南 目录 1 Getting Started 1.1 Overview 1.2 Basic Tutorial: Adding a project to version control 1.2.1 Configuration 1.2.1.1 Identifying yourself 1.2.1.2 Setting up the Home Directory on Windows 1.2.1.3 Pointing out the System wide configuration 1.2.2 Create Repository 1.2.3 Track Changes 1.2.4 Inspect History 1.3 GitHub Tutorial 1.3.1 Create Local Repository 1.3.2 Create Repository at GitHub 1.3.3 Eclipse SSH Configuration 1.3.4 Push Upstream 1.4 EclipseCon 2012 Git Tutorial 2 Concepts 2.1 Repository 2.2 Index 2.3 Branches 2.3.1 Local Branches 2.3.2 Remote Tracking Branches 2.4 Working Directory 2.5 Recording Changes in the Repository 3 Tasks 3.1 Creating Repositories 3.1.1 Considerations for Git Repositories to be used in Eclipse 3.1.1.1 The short story 3.1.1.2 The longer story 3.1.1.2.1 Eclipse Workspace and Repository working directory 3.1.1.2.2 Implications 3.1.2 Creating a new empty Git Repository 3.1.3 Creating a Git Repository for multiple Projects 3.2 Starting from existing Git Repositories 3.2.1 Starting the import wizard 3.2.2 Cloning or adding Repositories 3.2.2.1 Cloning a Repository 3.2.2.2 Adding a Repository 3.2.3 Selecting a Repository from the List 3.2.4 Importing projects 3.2.5 Wizard for project import 3.2.5.1 Import Existing Projects 3.2.5.1.1 Limiting the Scope for Project Import 3.2.5.2 Use the New Projects Wizard 3.2.5.3 Import as General Project 3.3 Working with remote Repositories 3.3.1 Cloning Remote Repositories 3.3.1.1 Repository Selection 3.3.1.2 Branch Selection 3.3.1.3 Local Destination 3.3.1.4 Cloning from specific locations 3.3.2 Pushing to other Repositories 3.3.2.1 Pushing to upstream 3.3.2.1.1 Configuring upstream push 3.3.2.2 Direct Push 3.3.2.3 Push Wizard 3.3.2.3.1 Push URI 3.3.2.3.2 Push Ref Specifications 3.3.2.3.3 Delete Ref Specifications 3.3.2.3.4 Conflicting Push Ref Specifications 3.3.2.3.5 Push Confirmation 3.3.2.3.6 Push Result Report 3.3.3 Fetching from other Repositories 3.3.3.1 Fetching from upstream 3.3.3.1.1 Configuring fetch from upstream 3.3.3.2 Direct Fetch 3.3.3.3 Fetch Wizard 3.3.3.3.1 Fetch Ref Specifications 3.3.3.3.2 Fetch Result Report 3.3.4 Pulling New Changes from Upstream Branch 3.4 Working with Gerrit 3.4.1 Enabling Gerrit for a repository 3.4.2 Pushing a change to a Gerrit Code Review Server 3.4.3 Fetching a change from a Gerrit Code Review Server 3.5 Inspecting the state of the Repository 3.5.1 Label Decorations 3.5.1.1 Text Decorations 3.5.1.2 Icon Decorations 3.5.2 Commit Dialog 3.5.3 Comparing Content 3.5.3.1 Compare editor and Synchronize View 3.5.3.2 Compare working tree with last commit 3.5.3.3 Comparing Working Tree with Index 3.5.3.4 Comparing Working Tree with a branch, a tag or a reference 3.5.3.5 Comparing Working Tree with Any Commit 3.5.3.5.1 From the project explorer: 3.5.3.5.2 From the history view (files only): 3.5.3.6 Comparing Two Commits 3.5.3.7 Comparing Index with HEAD or Any Other Commit 3.5.4 Comparing with Branches (Synchronize) 3.5.5 Quickdiff 3.5.6 Inspecting Commits 3.5.6.1 View Diff for a Commit 3.5.6.2 Showing the contents of a Commit 3.6 Committing Changes 3.6.1 Modifying the content 3.6.2 Committing 3.6.2.1 Committing with the Staging View 3.6.2.2 Committing using Commit Dialog 3.6.2.3 Commit Message 3.6.2.4 Amending Commits 3.7 Reverting Changes 3.7.1 Reverting changes in the working tree 3.7.1.1 Replace with File in Git Index 3.7.1.2 Replace with HEAD 3.7.1.3 Replace with Branch, Tag or Reference 3.7.1.4 Replace with Commit 3.7.1.5 Replace with Previous Revision 3.7.2 Revert using quickdiff 3.7.3 Reverting changes introduced by a specific commit 3.7.4 Resetting your current HEAD 3.7.4.1 Reset to specific branch or tag 3.7.4.2 Reset to a specific commit 3.7.4.3 Revert all local and staged changes 3.8 Branching 3.8.1 General remarks about branches 3.8.1.1 Upstream configuration 3.8.2 Checking out an existing Branch 3.8.2.1 From the team menu on a project node: 3.8.2.2 From the Git Repositories View 3.8.2.3 From the History View 3.8.3 Creating a New Local Branch 3.8.3.1 From the team menu 3.8.3.2 From the Repositories View 3.8.3.3 From the History View 3.8.4 Renaming an Existing Branch 3.8.4.1 From the Team menu on a Project node 3.8.4.2 From the Repositories View 3.8.4.3 From the History View 3.8.5 Deleting a Branch 3.8.5.1 From the Team Menu on a Project node 3.8.5.2 From the Repositories View 3.8.5.3 From the History View 3.8.6 Branch Creation Dialog 3.8.7 Configure Branch Dialog 3.9 Merging 3.9.1 Merging a branch or a tag into the current branch 3.9.1.1 Starting merge from the History View 3.9.1.2 Starting merge from the Team menu 3.9.1.3 Starting merge from the Git Repositories View 3.9.1.4 Merge options 3.9.1.5 Possible merge results 3.9.1.5.1 Merge Result dialog 3.9.2 Resolving a merge conflict 3.9.2.1 Using Merge Tool 3.9.2.2 Manual conflict resolution 3.9.2.3 Finding conflicting files 3.9.2.4 Editing conflicting files 3.9.2.5 Adding conflict resolution to the git index 3.9.2.6 Committing a merge 3.9.3 Aborting Merge 3.10 Rebasing 3.10.1 Rebase Introduction 3.10.2 Rebase, A Simple Example 3.10.3 The Real World: Rebase Conflicts 3.10.4 Starting Rebase 3.10.5 Rebase Confirmation Dialog 3.10.6 Rebase Conflicts 3.10.7 Aborting Rebase 3.11 Interactive Rebase 3.11.1 Synopsis 3.11.2 Starting interactive rebase 3.11.3 Planning rebase 3.11.4 Executing interactive rebase 3.11.5 Safety Instructions 3.11.6 Rebase with auto-stashing 3.12 Cherry Picking 3.12.1 Cherry-pick Introduction 3.12.2 Cherry-pick Example 3.13 Tagging 3.13.1 Creating a Tag 3.13.2 Replacing an Existing Tag 3.13.3 Deletion of tags 3.13.4 Light-weight and Signed Tags 3.14 Patches 3.14.1 Creating Patches 3.14.1.1 Create a Patch from a Commit 3.14.1.2 Patch Wizard 3.14.2 Applying Patches 3.15 Managing Repositories 3.15.1 Adding Repositories to the Git Repositories View 3.15.1.1 Adding a Repository manually 3.15.1.2 Cloning a Repository 3.15.1.3 Creating a Repository 3.15.1.4 Adding a Repository using Copy and Paste 3.15.2 Removing Repositories 3.15.2.1 Removing a Repository from the Repositories View 3.15.2.2 Deleting a Repository 3.15.3 Structure of the Git Repositories View 3.15.4 Functions of the Git Repositories View 3.15.4.1 Project Import 3.15.4.2 Branch and Tag Support 3.15.4.2.1 Check-out of Branches and Tags 3.15.4.2.2 Creation and Deletion of Branches 3.15.4.2.3 Rebasing 3.15.4.2.4 Merging a Branch or a Tag 3.15.4.2.5 Synchronizing with a Branch or a Tag 3.15.4.2.6 Determining the Checked-out Branch 3.15.4.2.7 Resetting to a Branch or a Tag 3.15.4.2.8 "Detached" HEAD 3.15.4.3 Inspecting References 3.15.4.4 Browsing the Working Directory 3.15.4.5 Repository Configuration 3.15.4.6 Remote Repositories 3.15.4.6.1 Direct Fetch and Push Support 3.15.4.6.2 Adding a Remote Configuration 3.15.4.6.3 Changing Remote Configurations 3.15.4.6.4 Gerrit Configuration 3.15.5 Refresh 3.15.6 Link with Selection 3.15.7 Link with Editor 3.15.8 Hierarchical Branch Layout 3.15.9 Bare Repositories 3.15.10 Removing Repositories from the Git Repositories View 3.15.11 Showing Repository in Related Views 3.15.11.1 Show in History 3.15.11.2 Show in Reflog 3.15.11.3 Show in Properties 3.16 Working with Tasks 3.16.1 Installation 3.16.2 Commit Message Template 3.17 Viewing Commits 3.17.1 Tagging a commit 3.17.2 Creating a branch from a commit 3.17.3 Checking out a commit 3.17.4 Cherry picking a commit 3.17.5 Opening the commit viewer 3.18 Searching for commits 3.18.1 Git Search page 3.18.2 Browsing Search Results 3.18.3 Launching Git Search 3.18.4 Open commit dialog 3.19 Finding the author of each line in a file 3.20 Working with Submodules 3.20.1 Cloning Repositories with Submodules 3.20.2 Browsing Submodules 3.20.3 Adding a Submodule 3.20.4 Updating Submodules 3.21 Team Project Sets 3.21.1 Import 3.21.2 Export 3.21.3 Format 4 Reference 4.1 Menus 4.1.1 Project Context Menu 4.1.2 Resource Context Menu 4.1.3 Repositories View Menus 4.1.4 History View Menus 4.1.5 Git Workbench Toolbar and Git Workbench Menu 4.1.6 Menu Actions 4.2 Git Perspective and Views 4.2.1 Git Perspective 4.2.2 Git Repositories View 4.2.3 History View 4.2.3.1 Overview 4.2.3.2 Opening the History View 4.2.3.3 Organization of the History View 4.2.3.4 Using the History View 4.2.3.4.1 Inspecting the Commit Graph 4.2.3.4.2 Displaying and Comparing versions of a File 4.2.3.4.3 Working with the Filter Settings 4.2.3.5 Toolbar actions 4.2.3.5.1 Find 4.2.3.5.2 Filter settings 4.2.3.5.3 Compare Mode 4.2.3.5.4 All Branches 4.2.3.6 View Menu actions 4.2.3.6.1 Configuring the View 4.2.3.7 Context Menu actions 4.2.3.7.1 Compare with working tree 4.2.3.7.2 Compare with each other 4.2.3.7.3 Open 4.2.3.7.4 Checkout 4.2.3.7.5 Create Branch... 4.2.3.7.6 Delete Branch 4.2.3.7.7 Create Tag... 4.2.3.7.8 Create Patch... 4.2.3.7.9 Cherry Pick 4.2.3.7.10 Revert Commit 4.2.3.7.11 Merge 4.2.3.7.12 Rebase on top of 4.2.3.7.13 Reset > Soft/Mixed/Hard 4.2.3.7.14 Quickdiff > Reset Quickdiff Basline to HEAD 4.2.3.7.15 Quickdiff > Reset Quickdiff Basline to first parent of HEAD 4.2.3.7.16 Quickdiff > Set as Baseline 4.2.3.7.17 Copy 4.2.3.7.18 Show Revision Comment 4.2.3.7.19 Show Revision Details 4.2.3.7.20 Wrap Comments 4.2.3.7.21 Fill Paragraphs 4.2.3.8 Drag and Drop Support 4.2.3.9 Working with the Revision Details Area 4.2.4 Synchronize View 4.2.4.1 Synchronization State 4.2.4.2 Mode 4.2.4.3 Models 4.2.4.4 Navigation 4.2.5 Git Tree Compare View 4.2.6 Git Staging View 4.2.6.1 Partial Staging 4.2.7 Git Reflog View 4.3 Git URLs 4.4 Git References 4.5 Refspecs 4.5.1 Push Refspecs 4.5.2 Fetch Refspecs 4.6 Remotes 4.7 Git Ignore 4.8 Git Fetch Factory for PDE Build

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值