在win下使用GIT
2009-08-25 17:24 清炒白菜 阅读(635) 评论(0) 编辑 收藏 举报找到一个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"
提交全部更改过的文件.
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 常用功能示例”。
参考: