`
小哥1900
  • 浏览: 55453 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

(ZZ)在windows XP下使用git小记(一)-with JGit/EGit

阅读更多
在windows XP下使用git小记(一)-with JGit/EGit

一、安装必要客户端



1. JGit/EGit plug-in for Eclipse 3.5

   a. 菜单 -> Help -> Install New Software -> "Add" Button;

   b. "Add Site" 

      Name     : jgit Location

      Location : jgit - http://www.jgit.org/updates

      选择最新版本(目前是 0.5.0.200908282229)安装之;

   c. 重启 Eclipse





2. 安装 msysgit

   a. 从 http://msysgit.googlecode.com/files/Git-1.6.2.1-preview20090322.exe 下载并安装;



=============================================================================



二、在服务器上建立公共库 并提交第一个项目



1. ssh 到服务器,假设当前目录为你的帐户根目录;



2. 在服务器上建立公共库

      $ mkdir gitdemo.git  #仓库名称为 gitdemo.git

      $ cd gitdemo.git

      $ git --bare init --shared #建立裸库,且为 group 共享模式



   刚刚创建的 Git 仓库是没有任何分支的,因此也没有 clone 的意义。

   所以我们需要向新的仓库上传一些东西,以初始化仓库。



3. 管理员添加公共库的第一个项目

   a. 在本地建立一个仓库目录,例如我的 D:/AndroidSpace

      建议如没有特殊需要,此处不要在 Eclipse 的 workspace下建立仓库目录,

      也不要将 workspace 作为仓库目录,否则会使得环境过于复杂,可能造成不必要的麻烦。

      最好在与 workspace 同目录下建立仓库目录,例如 AndroidSpace。

      也就是说 AndroidSpace 是本地的一个 Git Repository,同时也被当作是 Eclipse 的一个

      工作空间,当然它并不是真正你设置的 workspace。



   b. "开始" -> "所有程序" -> "Git" -> "Git GUI"  (图 Git GUI 1)

      选择 "创建新的版本库" (图 Git GUI 2)(图 Git GUI 3)



   c. 从这步开始,既可以使用 Git GUI,也可以使用 Eclipse 插件向公共库提交项目。



      如果使用Git GUI,则需要手动添加 ".gitignore 文件,以过滤不需要进行版本控制的文件。

      方法:

      在 AndroidSpace 仓库中新建一个文本文件,如叫 ignore.txt;

      向其中添加需要过滤的文件名称的匹配字符,如:



      */bin/*

      */gen/*



      添加完毕后保存关闭,在 cmd 窗口,执行以下命令:



      D:\AndroidSpace>ren ignore.txt .gitignore



      将 ignore.txt 改名为特定的 .gitignore 文件,直接 F2 重命名在 windows 是不允许的。

      -------------------

      如果是 Eclipse,可在 菜单 -> Window -> Preferences -> Team -> Ignored Resources 中,

      勾选需要过滤的文件匹配符,或自行添加。(图 Ecl 1)





   d. 这里以使用 Eclipse 为例。向 AndroidSpace 中添加第一个项目文件

      可以在 Eclipse 中创建文件,期目录定位到 AndroidSpace中(图 Ecl 5);

      建好后,

      -- 在 Eclipse 中右键选择 Test 项目 -> Team -> Share Project -> Git,点击 "Test" 项目名称,

         因为 Test 已经在 AndroidSpace 这个 Git 仓库中了,所以 "Create" 按钮是灰的,直接点击

         "Finish" 即可; 如果你是将一个没有放在 Git 仓库中的项目添加到 Git,此时可点击 "Create"

         按钮以创建一个 Git 仓库(图 Ecl 6)。

      -- 将 Test 加入版本控制后,在 Eclipse 中右键选择 Test 项目 -> Team -> Add to Version Control;

      -- 再次右键选择 Test 项目 -> Team -> Commit... (图 Ecl 7),提交页面已经过滤掉了不需要进行

         版本控制的文件,填写 comment 后,点击 "commit"。



   e. 将本地 Test 项目上传到服务器的公共库上

      -- 在 Eclipse 中右键选择 Test 先项目 -> Team -> Push to...;

      -- 填写服务器上公共库的路径 (图 Ecl

      -- 按提示继续;

      -- 到提交页面,选择要 push 源分支 和 目的分支后,点击 "+ Add spec" 按钮,

         或者直接点击 "Add all branches spec"(图 Ecl 9);

         点击 "Next" 或 "Finish",完成 push 操作(图 Ecl 10)。





   f. 此时在服务器的公共库目录下 使用 git log 命令,可看到刚刚 push 的项目日志。

      这样公共库的建立及第一次初始化操作完毕(图 Ecl 12)。





三、从已建立好的公共库上 clone 项目

      这里假设是在另一台机器上的操作,没有之前的 Test 项目,如果是在同一台机器上在做这个联系,

      为表示清楚,最好在 Eclipse 中删除之前的 Test 项目。





1. 在 Eclipse 中 Import 项目 -> Git -> Git Repository (图 Ecl 13)



2. 填写服务器公共库信息 (图 Ecl 14),点击“Next”;



3. 选择要 clone 的分支,点击“Next”;



4. 选择本地项目的存放路径,这里设置为与 Eclipse 的 workspace 同路径的 AndroidClient(图 Ecl 15),

   注意,clone 操作是将整个公共库做一个镜像,所以这里的 AndroidClient 在 clone 后就相当于之前的

   AndroidSpace;



5. 在最后一步时,将会提示"Some projects were hidden because they exist in the

   workspace directory"(图 Ecl 16),这应该是一个bug,此时点击 "Cancel" 按钮,将提示

   "A complete clone was already made. Do you want to delete it?",这里要选择"No"。



6. 现在公共库已经被 clone 到本地了,我们可以导入它。

   "Import -> General -> Existing Projects into Workspace",

   选择 ..AndroidClient\Test 工程,这里不要选择 "Copy projects into workspace",因为我们的项目要

   进行版本控制的所有信息,都在 AndroidClient 目录下,如果将 Test 项目 copy 到 workspace,则新建

   的 Test 项目就脱离了之前的版本控制。



   这里,使用新建一个 Android 项目 中的 "Create project from existing source" 也可实现同样效果。



7. 新导入的 Test 项目,此时要告诉 Eclipse 对 Test 进行版本控制,仍然是:

   右键 Test -> Team -> Share Project -> Git -> 点击选择 "Test" 名称 -> Finish;

   至此一个 clone 到本地仓库的项目就被导入到 Eclipse 了。





四、进行一次两个客户端的同步

      这里,由于我是在一台机器上进行操作,所以不能起同样的项目名称,我的当前环境如下:



D:/AndroidSpace/Test    导入为-->  Eclipse Test1

D:/AndroidClient/Test   导入为-->  Eclipse Test2



      AndroidSpace 和 AndroidClient 为前述中提到的两个本地 Git Repository, 在服务器上有我们的公共

      Git 库 gitdemo.git。



      现在要做的就是,修改 Test1 中的 Test.java 文件,提交修改,并同步到 gitdemo.git,Test2 再与

      gitdemo.git 同步,获取最新的 Test.java 文件的修改。



1. 打开 Test1 项目的 Test.java 文件,添加如下代码:



private static final String TAG = "Test";



...

setContentView(R.layout.main);

        Log.v(TAG, "Test Message");

...



2. 保存修改后,右键点击 Test.java -> Team -> Commit... -> "Modify Test.java" 并 提交;



3. 右键 Test1 -> Team -> Push to... 使用默认的 Configured remote repository 选项 -> Next;



4. 选择 Source ref : refs/heads/master | Destination ref : refs/heads/master,并点击 "+ Add spec",

   或者直接点击 "Add all branches spec";



5. 点击 "Next" 或 "Finish" 完成操作。如果成功,会显示绿色方格。

---------------------

6. 右键 Test2 -> Team -> Fetch from... 使用默认的 Configured remote repository 选项 -> Next,

   此时 "Specifications for fetch" 框内应该已经自动选择了要同步的内容,

   Source Ref : refs/heads/* | Destination Ref : refs/remotes/origin/* | Force Update已选,

   点击 "Finish"。完成后,本地的 remote/origin/master 分支就还是最新的了。



7. 很遗憾,我没有找到继续进行的 Eclipse 菜单,应该是还没有添加此功能,毕竟这只是 0.5 版本。



   It's so depressing!



   So I have to use other git tools.



   P.S. You can do all the tasks above with EGit in Eclipse, of cource if you like.

*********************************************************************************

   剩下的工作,可以交给 TortoiseGit 去做了。很简单,就是

   git merge

   修改冲突文件

   git add XXX

   git commit



*********************************************************************************

   适用了一下 TortoiseGit,类似于 TortoiseSVN,比较强大的一个工具。

   对于 TortoiseGit 的使用将会在以后的文章中说明。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics