EGit使用——轻松解决无法pull,无法提交到master分支等问题

一、适用条件
1. android工程
2. 使用工具是的eclipse,egit
3. 数据来源自己搭建的git服务器(master等所有分支)

二、基本介绍
我们公司是使用的自己搭建的git服务器,所有的工程都是在服务器上初始化的master,如果想要用eclipse提交到master分支上,需要先pull下来主分支,然后才能提交到master分支(此方法不仅适用于pull master 分支,服务器上的所有分支都可以)。

三、具体内容
介绍完了,现在让我们看看具体的步骤吧。点击clone a git repository and add the clone to this view按钮(如果没有找到此按钮,可以点击windows ->show view ->other ->Git -> Git Repositories), 如图椭圆选中区域,弹出对话框,填写需要的内容,点击next
EGit使用——轻松解决无法pull,无法提交到master分支等问题_第1张图片

选择需要pull的分支,如图我选择的是master,然后点击next(在这里还有两个分支,因为我做教程使用的是我已经用过的工程,里面还有两个分支,我在这里抹去了)
EGit使用——轻松解决无法pull,无法提交到master分支等问题_第2张图片

Directory:填写pull下来的工程的目录,如图我是放在我的主工程下面
D:/android64/project/工程名字,工程名字你可以随便起名,不过最好是你需要建立的工程的名字,
remote name:填写远程服务器的名字,此处也可以随便起名,我使用的也是工程名字,点击finish完成
EGit使用——轻松解决无法pull,无法提交到master分支等问题_第3张图片

点击完成之后出现的了一个新的目录,如图所示,分支是master,后面还有一个git的路径,是D:/android64/project/工程名字/.git
(此时如果你查看你的工程目录D:/android64/project,会发现工程目中,有了一个xxx的工程,xxx是你的”工程名字”)
EGit使用——轻松解决无法pull,无法提交到master分支等问题_第4张图片
如果你的master是已经使用过的,比如别人已经写好的框架,你是作为一个参与开发者,你pull下来的可能会如图所示,在Working Directory中有一个完整工程,
EGit使用——轻松解决无法pull,无法提交到master分支等问题_第5张图片

此时并没有完成,我们需要右键点击此分支目录,点击import Projects,如图红色椭圆框,
EGit使用——轻松解决无法pull,无法提交到master分支等问题_第6张图片

选择import existing projects, 点击next
EGit使用——轻松解决无法pull,无法提交到master分支等问题_第7张图片

选择Android Project from Exsiting Code, 点击next
EGit使用——轻松解决无法pull,无法提交到master分支等问题_第8张图片

通过browse找到你pull是填写的工程目录,并找到那个需要导入工程
(我的是,D:/android64/project/工程名字),由于工程已经存在于我们的工程目录中了,不要选择copy project into workspace,点击finish,完成,此时我们pull下来的工程就被添加到我们工程目录中了
EGit使用——轻松解决无法pull,无法提交到master分支等问题_第9张图片

如图,pull下来的工程已经被添加到工程目录了,此时工程上有需要小星号,说明目录并没有被git追踪
EGit使用——轻松解决无法pull,无法提交到master分支等问题_第10张图片

右键点击目录,选择Team->Add to Index,此时星号消失,工程被git追踪,如果此时,还有带着星号的,可以选择Team ->commit,就好了,
EGit使用——轻松解决无法pull,无法提交到master分支等问题_第11张图片

从git服务器上pull工程,并添加到eclipse工程的操作完成,剩下的操作pull和push操作都和普通使用一样了。

总结
我们平时使用eclipse开发的时候,主要是用git的commit 和push,如果直接通过在工程目录里面建立工程,当提交到服务器时,会遇到无法提交到master分支(因为master分支是在服务器已经初始化好了,在服务器上已经存在了一个master分支,你在本地初始化的master分支和服务器的有冲突,并不是一个分支,上有一服务器会reject),如果你此时非要想提交到主分支,必须先要把服务器的初始化的git主分支pull到本地,此时你可能会想,我先建立一个工程,然后pull一下,再push提交不就行了吗?但是你很快就会发现pull会报错,不能用,然后你会去使用fetch from,网上也有很多教程,但是我个人试了一下,都不行(可能是我运气不好吧, 没有遇见好用的),不过也为我提供了一些思路,然后经过一番尝试,发现此方法可行,特在此分享一下,帮助朋友少走一些弯路吧,如果有更好的方案,邮件通知我[email protected],谢谢大家拿出时间来看。

你可能感兴趣的:(android)