git简介


我对于git,08年就大闻其名,却一直不敢尝试。只因为svn已经够我用了。所以即使googlecode已经支持git,我还是坚持使用svn。

但是最近googlecode老连接不上,真纠结。这使我不得不放弃它,投奔github,借此机会体会git的魅力。

2013-01-21更新:今天一早就在微博上看到github被墙了,一看,果真如此,子域名都访问不了。立此纪念。


git的优势

git比起传统的版本控制系统,有如下的优势:

  • 分布式版本控制系统
  • 协作开放变得轻松自然
  • 减少开发人员沟通的开销

github

github 是一个网站,同时也是一个项目仓库。我们只要在网站上注册一个帐号,然后就可以在上面免费创建开源项目。利用git这个分布式版本管理系统,我们可以吸引到更多的人关注,加入我们的项目。

github的访问速度挺快的,这也是越来越多人使用它的原因。

证书登录

当然也可以用证书登录,原理跟ssh证书登录一样。参考我这篇文章 ssh证书 。

使用证书登录,它是不支持https的方法的,举个例子,我的一个项目https://github.com/wuyao721/51docs ,
这个地址可以通过证书做push,pull等操作:

git@github.com:wuyao721/51docs.git

而下面这个地址证书是不起作用的,必须使用用户名和密码:

https://github.com/wuyao721/51docs.git

工具(windows)

github for windows

到 这里 下载windows平台的github客户端。

tortoisegit

使用过程中我觉得 github for windows 并不好用,所以我找到了另外一个工具。

svn 有一个工具叫 tortoisesvn ,那么 git 也有它的 tortoisegit 。

msysgit

tortoisegit的官网告诉我们,它还依赖于 msysgit 。msysgit是核心程序,tortoisegit只是它的皮而已。

值得注意的是,先安装tortoisegit,再安装msysgit。

git-credential-winstore

令人纠结的是tortoisegit没次推送都要填写用户名和密码。网上有人说用 _netrc 来记录用户名密码,我试过是可行的。

_netrc 是明文的,会暴露用户信息,还好有另外一个解决办法。它就是 git-credential-winstore ,从名字可以猜测到这是git在windows用来存储用户名密码的工具。它可适用用于 Windows XP 和 Windows 7 。

怎么使用?只要双击运行它就可以了。

tortoisegit操作 & 观念的转变

windows平台下,我的使用感受是tortoisegit比较好用。所以这里的操作是针对tortoisegit来说的。

像我这种以前没有用过分布式版本管理系统的程序员,学习git不算是特别难的事情,但是也需要一个学习的过程。最主要是观念的转变,我从一开始就想把git当做svn来用,所以用的很不习惯。

本地的版本库

在git的世界里,每个本地的代码库都是一个完整的git系统。使用tortoisegit提交代码(commit),其实只是提交到本地的git版本库。

github的版本库

更新本地版本库后,我们就可以将推送到远程版本库(例如我用的github),合并到master或者其它分支。

常用操作

我在这个列出了一些常见的tortoisegit用法,主要就是操作右键弹出的菜单。

指令(英文版) 指令(中文版) 功能说明 备注
git clone .. git 克隆 .. 克隆一个项目代码库到本地(对应于svn的checkout) 在非版本库目录下右键
git create .. git 在这里创建新版本   在非版本库目录下右键
git sync .. git 同步 .. 弹出对话框,用于同步两个版本库 在版本库目录下右键
pull 拉取 将远程版本库拉到本地版本库 git sync 弹出的对话框
push 推送 将本地版本库推送到远程版本库 git sync 弹出的对话框
git commit .. git 提交 .. 提交到本地版本库,成功后弹出对话框可以推送到远程版本库 在版本库目录下右键
TortoiseGit TortoiseGit 弹出更多菜单,跟tortoisesvn类似 在版本库目录下右键

和tortoisesvn相同的用法

除了 clone , pull , push 这些指令之外,tortoisegit在用法上跟tortoisesvn是差不多的。

工具(linux)

首先,从服务器上下载版本库:

git clone https://github.com/wuyao721/51docs.git

emacs + git-emacs

emacs用户可以通过插件 git-emacs 来操作git版本库。把下面的代码加入 emacs 配置文件:

(global-set-key (kbd "C-c p v g") 'git-status)
(autoload 'git-status "git-status" "subversion interface for emacs" t)

也可以使用 magit ,它也是emacs的插件。

FAQ

Key is already in use

说明这个key已经被某些用户或项目使用了。先查一下是被谁用了:

ssh -T -i ~/.ssh/id_rsa git@github.com

如果这个key被自己的某个项目使用了,那么将它添加在用户设置里而不是项目设置。
如果这个key给其它人用了,那么就换个key吧。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值