2013.10.20]Eclipse配置Git全过程-----------附用EGit不能push的问题解决
环境为:xp+ADT bundle+msysGit+TortoiseGit,前提是已经安好了msysGit和TortoiseGit。事实上看过本篇,TortoiseGit不用安装即可,他是管理git的图像化工具,和eclipse的插件EGit是同一个功能。
一、安装EGit插件
打开eclipse,点help-----install newsoftware,名字写EGit,链接地址:http://download.eclipse.org/egit/updates,安装完毕后重启Eclipse。截图如下:
二、配置eclipse
点击window---sharepreference---Team---Git----Configuration,在user settings栏目点击Enter Entry,添加user.name *******************和user.email *************,如下所示:
三、用eclipse新建一个android项目TestHello。【注意:我的eclipse默认的工作空间是E:\WorkSpaces\Android,F:\yan_gitSource这个文件夹是我准备当仓库的地方。】
在eclipse里右键点击项目---Team----share project,点击create,点Browser选中刚才建的放仓库的地方F:\yan_gitSource,然后name里填TestHello_git,这就是我们真正放仓库的地方。
完毕后,看到eclipse里变成[TestHello_git NO HEAD],里面的文件都带有问号,表示文件处在untracked状态,还没提交。这时发现原eclipse工作空间里那个TestHello文件夹不见了,而转移到了放仓库的地方。如下:
四、在github里新建一个仓库,为了统一我们起同样的名字,命名为TestHello_git,其实这个名字跟本地的不一样也没关系。
五、右键点击项目Team--commit,写上注释选择所有代码,然后commit,commit到本地之后代码里 no head变成了master,表示本地有分支了。
【补充:eclipse的egit跟TortoiseGit使用的密钥是不共用的,需要再次添加。】通过eclipse里的window → preference → general → network connection → SSH2 → Key Management → generate RSA Key... → apply → save private key...,然后保存添加到github上!
六、这个时候如果你点team--remote--push,无论怎么配是不会成功的,注意那个填URI的地方只能填http地址,填git地址识别不出来。即便这样填好http之后,push时会提示no fast farward之类的,意思是应该先从github上pull一下,然后再push。当你pull时,又会马上提示各种没配置好。这时可以按如下操作:点window---preference--team---git--configuration-------------Repository Settings,Repository选择TestHello_git,然后点右边的open,视图如下:
将config修改为以下状态:
[core] repositoryformatversion = 0 filemode = false bare = false logallrefupdates = true symlinks = false ignorecase = true hideDotFiles = dotGitOnly[remote "origin"] url = git@github.com:yanzi1225627/TestHello_git.git
fetch = +refs/heads/*:refs/remotes/origin/*[branch "master"] remote = origin merge = refs/heads/master[user] name = yanzi1225627 email = yanzi1225627@qq.com
注意:那个url地址是你在github上建库的ssh地址。
七、在push之前记得先pull一下,把github上的仓库先pull到本地仓库。这个跟前面讲TortoiseGit时,新建一个文件夹然后第一步gitclone,从功能上讲是同样的作用。就把github上的代码同步到本地,同步完后可以看到本地仓库里多了两个文件,这都是github新建仓库时生成的。如果不pull就push,会报错只能用强推覆盖掉本地和github仓库上不一样的文件。在git命令里是加参数-f,在egit这个图像界面里是在push时选择 force update,但不建议这么干。
八、接下来就开始push喽!点team---remote--push,会弹出下面这个界面。如果刚才那个config文件没有配置好的话,这块就得一点一点配置Custom URI,很麻烦。
点next之后,左边两个框选好后,点Add Spec,截图如下:
之后会看到下面这个图:
再点next----finish就可以看到push的界面了哈哈!网速快的话很快就push上去,网速慢的话可能会断掉,自己手动再push!
查看github上是否push成功:
-------------------------⊙﹏⊙b汗,终于push成功了,昨折腾了一夜才搞好,看过之前的教程都是在push这块一笔带过,在填URI时不知道咋搞,无意中想到用TortoiseGit先push下,然后将.git文件夹下的config文件拷贝到eclipse的项目仓库,竟然成功了。本文系原创,转载请注明作者yanzi1225627
参考:
1、http://my.oschina.net/bbdlg/blog/83568
2、http://blog.csdn.net/luckarecs/article/details/7427605 这个比较详细,但在push这块有问题,已不适用!
3、http://www.myexception.cn/eclipse/1101538.html