[2013.10.20]Eclipse配置Git全过程-----------附用EGit不能push的问题解决

来源:互联网 发布:java基本类型有哪些 编辑:程序博客网 时间:2024/04/29 13:47

环境为: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

原创粉丝点击