读书人

Windows XP 上使用 Git 小记 (一) - w

发布时间: 2012-08-13 13:21:53 作者: rapoo

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 8)

?? ? ?-- 按提示继续;

?? ? ?-- 到提交页面,选择要 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 的使用将会在以后的文章中说明。

读书人网 >windows

热点推荐