Windows下Git使用记录—02eclipse和github
在进行项目开发的时候,我们通常会选择一款IDE,eclipse, visual studio 或者 codeblocks等等。最近在用eclipse做自己课程的作业,就顺便记录一下通过eclipse和git来进行项目开发的使用。git的安装与基本使用已经在以前的随笔中做过详细记录:windows下GIT使用记录--00准备阶段和windows下GIT使用记录--01基本操作。
1. eclipse及EGit的安装与配置
从http://www.eclipse.org/downloads/下载eclipse之后,直接解压到想要放置的目录下面,如果已经安装了java环境的,没有的话,可以从www.java.com/下载jre或者jdk来安装。然后打开解压出来的eclipse目录下的eclipse.exe就可以顺利启动eclipse。这里要注意java的版本和eclipse的版本要匹配,两者都是32位或者都是64位的,否则,可能会导致eclipse无法启动。
如果要通过eclipse来进行C/C++项目的开发的话,还要安装C语言编译工具,其中最受欢迎的是MinGW。MinGW可以通过http://sourceforge.net/projects/mingw/files/Installer/mingw-get-inst/来下载。下载mingw-get-inst-xxxx.exe之后,直接双击安装。安装的过程根据自己的实际需要选择需要安装的编译环境C和C++,如果需要还可以选择mingw system tools。安装完成之后,还要配置环境变量来让eclipse能够找到mingw。将mingw加入到系统的环境变量Path中,比如说mingw的安装目录为D:\MinGw,那么就要将D:\MinGw\bin添加到系统的环境变量Path中。注意添加的过程中,要用分号;将D:\MinGw\bin与其它Path中的路径分开。为了让eclipse能够更好的工作,务必将D:\MinGw\bin目录下的mingw-make.exe重命名为make.exe。
启动eclipse后,通常会出现两个警告,分别是关于HOME环境变量和EGit的安装路径的。HOME变量通常设置为自己在users目录下的用户文件夹。例如我的用户名为admin,那么HOME环境变量就可以设置为C:\Users\admin。如果不希望将用户文件夹放在默认的C盘,那么可以参考Windows7文件夹转移清理臃肿的C盘将自己的用户文件夹转移到其他目录。不过如果按照Windows7文件夹转移清理臃肿的C盘中的操作,使用mklink建立符号链接转移自己的用户文件夹的话,HOME环境变量依然可以设置为C:\Users\admin。关于EGit的警告,可以通过配置eclipse来消除。打开eclipse中的window->preference,然后在preference对话框左侧的选项中选择Team->Git,在右侧的system config中通过“浏览(browser)”来找到自己Git的安装目录,点击确定即可。
重启eclipse,相关的配置即可生效。
通过eclipse的help->Install New Software来安装EGit。单击work with右侧的添加,添加EGit资源库http://download.eclipse.org/egit/updates/,可以任意命名。然后选择Eclipse EGit然后next进行安装即可。
也可以通过eclipse marketplace搜索git或者egit来安装EGit。
如果安装过Git Gui,并进行过相关的配置,例如用户名,email等。那么相关的Git配置文件会被系统默认存放在C:\Users\admin目录下面。而在eclipse的配置,preferences->team->git->configuration中,User Settings选项卡下location会自动载入HOME环境变量所指向目录下的.gitconfig,如果该目录下没有.gitconfig文件,那么可以将git的子目录etc下的gitconfig文件(git\etc\.gitconfig)拷贝到HOME目录(C:\Users\admin)下,如果HOME环境变量设置为其它路径,那么将.gitconfig拷贝到该目录下即可。因为Windows下无法在桌面模式中直接修改文件为.gitconfig,可以通过命令终端来完成该操作。命令如下:
move gitconfig .gitconfig
然后.gitconfig文件会被自动载入。
.gitconfig中最重要的配置参数为email和name。如果.gitconfig被载入后仍然没有email和name这两个参数的话。可以通过单击add entry添加相应的参数。在添加email和name这两个参数时,key值需要设置为user.email和user.name。
2.eclipse+git项目创建
接下来创建一个新的C项目,项目名:try_egit,项目路径为:W:\GitTest\try_egit。
try_egit项目创建完成之后,将该项目纳入git的项目管理。右键单击项目,Team->share project
选择git进行项目管理。
这时出现一个配置git代码仓库的对话框,可以不将Git代码库放在当前项目的文件夹下,所以我们将Git代码仓库放在另外的目录下。点击配置git代码仓库对话框的create按钮。填写相应的路径,我们将代码仓库放在W:\GitRepo目录下,名字为try_egit。这样EGit会在W:\GitRepo自动创建try_egit子文件夹,并在该子文件夹下创建代码仓库.git文件夹。如下图所示,current location显示的为项目所在的目录,Target location显示的为Git代码仓库所在的目录。
也可以将Git代码库放在当前项目的文件夹的父目录下,这样的话我们只需要简单的简单的勾选use or create repository in parent folder of project,然后选中想要创建Git代码仓库的项目try_egit,然后单击create repository单击finish即可。
接下来创建一个源代码文件夹src。这时我们在项目选项卡中可以看到
NO-HEAD表示该项目未创建分支,?均表示该文件夹或文件处于untracked状态。之后我们就可以尝试做一次提交。右键单击项目,Team->commit
之后出现commit对话框
填写commit信息,选中想要commit的文件。提交之后,会发现NO-HEAD信息消失了
但是src文件夹的?依然存在,这是因为该文件夹下没有没有被tracked的文件,创建文件后,右键单击文件或文件夹,Team->Add to Index
即可发现,?消失了。
对该项目进行编译,运行;代码能够正常运行,那么我们在向本地仓库提交一次。不过在提交的时候,我们并不想将编译过程中产生的中间文件和最后的和执行文件提交到Github的代码仓库中。那么我们就需要建立.gitignore文件来忽略不想提交的文件。同样将.gitignore文件添加到索引。我们能够在navigator选项卡中看到.gitignore文件,打开该文件,我们不想提交Debug文件夹下的文件,只要将Debug写入该文件即可。
再次向本地仓库提交,我们会发现Debug目录下的文件,没有出现在文件列表中。
如果需要查看自己代码仓库的改动历史,可以通过右键单击项目,Team->Show in History来查看。
3.本地代码推送到Github
接下来就是想Github推送本地的代码仓库。先在Github创建一个新的代码仓库try_git。不过因为本地代码仓库try_egit和Github上的代码仓库try_git是分别独立创建的。在推送之前我们必须将两者merge,也就是让两者的历史能够完美的融合,能够辨识对方。我们首先将Github上的代码仓库try_git取回(fetch)到本地,然后与本地代码融合后再推送到Github中,进而对Github的代码仓库进行更新。
如果机器没有安装和使用过Gui Git,那么接下来就会出现一个对话框要求你输入passphrase,这个是在生成SSH的过程中输入的原始密码。如果不记得了,可以再重新生成SSH,再将重新生成的SSH值添加到Github即可。如果机器曾经安装并使用过Gui Git,也就是说本机的SSH码已经添加到Github中,那么接下来就会出现如下对话框。
先单击Add all branches spec,Specifications for fetch列表中会出现Github代码仓库中现有的分支。之后在source ref中选中想要fetch的分支,因为现在Github中只有一个分支master,所以这里选择master[branch],然后source ref中路径自动变为refs/heads/master。然后finish即可。接下来会出现一个对话框显示fetch结果。
Git fetch命令只是从Github上下载最新版的master到本地主机中,但是还没有和本地代码仓库融合,只有融合之后,再推送到Github的时候,Github才能将当前Github上的代码仓库与从本地上传的Git代码仓库进行正确的融合。
两者的融合通过右键单击项目,Team->Merge来进行融合。Merge对话框如下图所示
选择Remote Tracking下的xxxx/master分支进行融合即可。融合完成之后,会弹出融合结果提示窗口。
融合之后,可以通过查看代码仓库的history来对比融合前后的不同。
融合成功之后,就可以将本地代码仓库try_egit上传到Github上相应的代码仓库try_git中。右键单击项目,Team->Remote->Push,出现push对话框,push对话框与fetch对话框非常类似,在该对话框中的操作也非常类似。
先单击Add all branches spec,Specifications for fetch列表中会出现Github代码仓库中现有的分支。之后在source ref中选中想要fetch的分支,因为现在Github中只有一个分支master,所以这里选择master[branch],然后source ref中路径自动变为refs/heads/master。同时Destination ref中也会出现refs/heads/master目录。接着会出现push confirmation对话框。直接单击finish即可。
之后会弹出一个对话框,显示push的进度。
结束之后,会出现一个push results的对话框,报告push结果。
这时登录到Github便可以发现,try_git代码仓库已经更新成功了。
在本地进行相关开发之后,如果需要再次推送本地代码仓库的话,就可以重复上面的步骤,先从Github服务器中fetch最新的代码,和本地代码Merge,然后推送到Github服务器即可。
4.Clone Github代码仓库到本地
那么如果使用一台新的电脑时,安装Git Gui并进行相关配置,再安装eclipse并按照前面所述进行配置之后,可以直接从Github服务器中直接将该代码仓库下载到本地,而不用再重新新建项目和代码仓库。
单击file->import,出现import对话框。选择Git->projects form git,next进行下一步。
从Github导入项目,需要选择URI.
在出现的import projects from git对话框中,只要在URI中填写自己的git代码仓库地址: git@github.com:changjian-k2k/try_git.git 即可。
之后出现分支选择对话框,选择master,
之后选择想要存放项目的目录,
接下来选择导入的项目wizard,因为之前推送到Github的文件中,包含eclipse的项目文件:.project和.cproject。这里我们可以直接选择Import existing projects。如果Github代码仓库中没有相应的项目文件,那么可以选择use the new project wizard,不过选择该选项创建项目之后,从Github上下载到本地的源文件不会自动加入到项目中,需要手动添加。第三项import as general project会创建一个非eclipse项目。
选择import existing projects之后,接下来一路next,就可以将代码仓库从Github上拷贝到本地。
如果选择use the new project wizard,会出现新建项目的对话框,这里不再赘述。
最后会在eclipse项目视图中会发现项目已经被成功克隆到本地了。
注意:如果想要用一个Git库对多个项目进行项目管理时,只要选中多个项目,然后右键单击,Team->Share->Git创建Git代码仓库即可,这样生成的代码仓库就能同时对多个项目进行管理。
转载请注明出处:博客园 永不止步