从远程下载项目到本地,对于远程上存在多个分支,选择需要的下载:
需要选择项目的初始分支,这会是本地eclipse打开的分支:
工作之前,将分支切换到自己的工作分支:
如果想切换到dev分支,会发现本地没有自己的工作分支Team–>Switch To,但是远程上有,于是选择从远程Checkout该分支:
选择checkout as new local branch
现在项目在dev分支下,而且可以随意切换到frank分支:
现在将分支切换到frank工作分支,在操作代码之前,
1、本地代码与远程代码同步一下:如果有不同的话,会出现差异文件
选择项目 Team–>Synchronizing Workspace:
2、双击差异文件,查看详细的差异,并没有出现修改冲突:
3、对于没有冲突的差异文件,将不想修改的部分代码可以直接将远程的代码copy到本地,但是对于需要修改的代码,保存之后,commit之后push到远程:
出现代码合并冲突
假设另一个同事也修改了相同地方的代码,如果强行提交会覆盖掉其他人的代码,这是就会出现代码冲突:
如果该同事一开始就同步差异,,修改差异的部分,,就不会出现代码合并冲突。但是,修改同一个地方之后,直接push到远程,就会出现冲突:
1、开始的时候,远程和本地的代码都是一样的:
2、同事小米将代码修改后进行提交到远程:
3、同事华为也是直接修改同一处代码:
4、同事华为 修改完代码,进行代码同步时,发现没有差异:
这是,可能是.git/config中缺少remote和branch,加上之后再同步一下:
[core]
repositoryformatversion = 0
filemode = false
logallrefupdates = true
[remote "origin"]
url = https://github.com/conflictTest.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "frank"]
remote = origin
merge = refs/heads/frank
再进行同步时,会出现冲突:
5、使用Merge Tool(如果是灰色,pull一下),执行第二项
6、手动修改,,将远程代码粘贴到本地:
7、修改后的文件需要添加到Git index中去:
8、 此时需要pull的向下箭头和数量没了,注意图标的变化:
9、现在可以直接push到远程了:
参考文章:
http://blog.youkuaiyun.com/rosten/article/details/17068285
http://blog.youkuaiyun.com/tototuzuoquan/article/details/47138765