代码改变世界

在win下使用GIT

2009-08-25 17:24  清炒白菜  阅读(635)  评论(0编辑  收藏  举报
[转自]http://iceskysl.1sters.com/?action=show&id=358
以前说过“与时俱进,使用Git”,在自己的本本上,已经Ubuntu好久了,Git也是有的非常好,但是有的时候在其他机器上,是个weindows,需要使用Git的时候,就只能找找有没有wein版本的git客户端了。
找到一个msysgit ,按照里面的说明下载安装就OK了,下面看看如何使用:
-----------------使用---------------
好,下面来个简单教程.标准的 git 教程是行不通的(要加些东西),因为这是windows.主要是没有用户信息.好我的git安装在 c:\git 以下为命令行.

1.创建git的数据库

C:\Git\bin>git init-db

2.生成一个文件xxx并加入到git中
C:\Git\bin>echo hello > xxx
C:\Git\bin>git add xxx

3.提交[以上两步与标准教程还是一样的,关键是这一步]
C:\Git\bin>set home=c:\
C:\Git\bin>git config --global user.name "clq"
C:\Git\bin>git commit -m "test"

一共三个命令,其中第1个是设置用户路径,第2个是设置用户名.而且是每次打开dos命令行后都要有这两个命令,当然你可以写成 bat 文件.第3个才是提交,不能直接写 git commit 因为这个版本好象一定要有注释,那个 "test" 就是我加的注释了.

4.改一下xxx文件
echo world >> xxx

5.查看一下它和我们原来对比的有什么不同
C:\Git\bin>git diff

结果如下
diff --git a/xxx b/xxx
index 907cd4b..360c7f4 100644
--- a/xxx
+++ b/xxx
@@ -1 +1,2 @@
hello
+world
(END)

用过cvs的都明白了吧.另外这个显示的还得退出,退出命令和vi一样

提交可以用一个命令来完成
git commit -m "" -a xxx

省去git add

C:\Git\bin>git show xxx
查看最近一次提交的信息.

C:\Git\bin>git commit -a -m"aa"

提交全部更改过的文件.


SVNGit的主要区别

Git是分布式SCM,而SVN是基于服务器的,也就是说每个开发者本地都有一套git库,每个人维护自己的版本(或者合并其他人的版本),而SVN是每个人写完代码后都及时的checkin到服务器上,进行合并。

如果上面这段话还不能让你真正了解Git的好处,而不想使用git来替代你的svn的话,那么我再列举几个我认为不错的比较直观的场景:

1、可以在本地(离线)就做好版本控制,而不用时刻连网,特别是Soho一族或者喜欢经常到处跑,又喜欢在路上、车上或者马路旁边的小凳子上coding的人;这个时候你可以在自己的Git库上进行版本控制,而不用到处找网络把代码搞到svn上去。

2、分布式的SCM更加安全和健壮,有没有想过,如果你的SVN版本服务器挂掉了(硬盘坏了或者网络不可用等等),你会咋样,能修复的好么,一旦修复不好,资料都完蛋了,而Git的分布式SCM,其中的几个节点挂掉影响并不大。

3、速度,你如果使用GoogleCode或者其他的SVN服务的话,不知道你是否有呆呆的等待chenkin完成的情况(我是经常有的),而Git,毫无疑问,速度快的多,(就算是使用GitHub也快),究其原因,应该是Git是打包好了上传,而不像SVN单个文件上传。

4、版本、分支管理

还有啥?想不来了,差不多就这样了,视个人情况而定,但是我认为Git会让你更加满意。

但是有人可能会有这样的想法,我本地使用git,然后定时的checkin到SVN上,这样岂不是更好,啊哈,好吧,你还不习惯或者还有其他的特殊情况(比如其他开发者不喜欢git,或者原来的代码在svn上等等),这里看看如何把git和svn结合起来一起使用。

1、比较笨的方法

同时使用Git和SVN,然后再各自的“忽略”列表里面加加上对方的版本库,比如在svn的忽略列表中加上.git,而同时在git的.gitignore中加上.svn;然后执行各自的命令。

2、比较靠谱的方法

使用git-svn应该算更加科学和靠谱的方法,安装好git-svn(这个是需要单独安装的)后,就可以使用啦,基本上是这样的:

mkdir 1stlog
cd 1stlog && git-svn init http://1stlog.googlecode.com/svn/trunk/

其他的就不多说了,可以参考“git and subversion”和“Howto use Git and svn together”以及“git-svn 常用功能示例”。


参考: