git是后来居上的版本控制工具,目前已经有非常多的的开源产品用此工具,但此版本控制和别的版本控制工具相比还是有些不太一样,自己走了些弯路,再次记录一下。

学习资料:

http://forcefront.com/tag/organization/

http://www.worldhello.net/gotgithub/

这两个是中文学习资料,对入门很有帮助。


工具:smartgit,号称这个工具很好,但是要注册,不知道如何完成,虽然官方网站对个人开源产品可以免费使用,但是我的安装工具还是过期了,如果有人知道如何使用告诉我一下啊。

TortoiseGit,这个是比较有名的Tortoisesvn的移植版本,在svn的工具中一直是比较好用的工具。相信这个工具应该也不会令人失望。下面介绍的工具中,主要以这个工具为准。

安装TortoiseGit就不介绍了,安装完成后,会在资源管理器的右键上有体现。

TortoiseGit密钥的配置

这个是很重要的一部分,因为刚开始的时候,我在这方面耽误了一会时间。

TortoiseGit 使用扩展名为ppk的密钥,而不是ssh-keygen生成的rsa密钥。也就是说使用ssh-keygen -C "[email protected]" -t rsa产生的密钥在TortoiseGit中不能用。而基于github的开发必须要用到rsa密钥,因此需要用到TortoiseGit的putty key generator工具来生成既适用于github的rsa密钥也适用于TortoiseGit的ppk密钥,配置步骤如下:

1)运行 TortoiseGit 开始菜单中的puttygen程序,如下图示
TortoiseGit密钥的配置 - rongjih - dragon的博客
 
2)点击“Generate”按钮,鼠标在上图的空白地方来回移动直到进度条完毕,就会自动生一个随机的key,如下图示
TortoiseGit密钥的配置 - rongjih - dragon的博客
 如有需要,可以为密钥设置对应的访问密码,就是修改上图中“Key passphrase”和“Confirm passphrase”的值。
3)将上图中多行文本框的内容全选、复制,并粘贴到github账户的 SSH public key 中,这就是适用于github的公钥。
4)点击上图中的“Save private key”按钮,将生成的key保存为适用于 TortoiseGit的私钥(扩展名为.ppk)。
5) 运行 TortoiseGit 开始菜单中的Pageant程序,程序启动后将自动停靠在任务栏中,图标显示为 ,双击该图标,弹出key管理列表,如下图示
TortoiseGit密钥的配置 - rongjih - dragon的博客
 

6)点击上图中的“Add Key”按钮,将第4步保存的ppk私钥添加进来,关闭对话框即可7)经上述配置后,你就可以使用

TortoiseGit进行push、pull操作了。

TortoiseGit的基本使用

“Git Clone...”是获得远程的版本库,“Git Create repository here”是将选定的文件夹作为要创建的版本库。

在要创建版本库的文件夹中点“Git Create repository here”后,会显示:

点“Ok”就会在该文件夹的根目录自动创建一个隐藏文件夹".git" 。

注意:最好找个空的文件夹练习操作,或者备份文件夹。比如误选了Clean up把无版本控制的文件都删了。

 

创建好之后,需要用git Sync...和服务器进行一次信息同步,同步后就可以取到服务器中项目的版本信息等。

远程使用Git

提交代码:

本地提交:

master是Git默认的主要分支(主干),适合单人独自开发。多人开发时可以给每个人创建一个分支。

切换版本:用switch/checkout命令在切换版本。

 

按Git Commit -> “master”是将所选文件夹内容提交到用于汇总的库上。

提交修改后,出现:

以上就是如何提交更改到本地的版本库,所以无论有无网络Git都可以用。

 

远程提交:

本地Commit(提交)后,下面介绍的就是Push到远程啦.

首先,在待提交的本地文件夹内右键单击空白处,选择 TortiseGit->Settings 。

然后选择Config,并填写github.com中的用户名和邮箱。

当然填其他的也可以,这里填的是每次提交后,版本库中显示出来的作者名和联系方式。

接着选择Remote,可以看见右图有3个需要填写的文本框。

Remote:远程传送的一个代号(可以随便起个名字,自己看得懂就行)

Url:github的url地址,例如:[email protected]:zhulinu/cloudsql.git

填好后点addnew增加即可。

要从本地文件夹更新至网络库,选中文件夹(必须是Git初始化过的),然后右键单击,选择TortoiseGit->Push...,弹出下列窗口。

选择要push的本地分支,和远程目标的分支,点“OK”。

要从网络库更新至本地文件夹,相应的,选择TortoiseGit->Pull...。

在确定你已经设置过Remote的情况下,点“OK”就可以了。


本地提交后,可以不用手动远程提交,只要网络通,工具会自动同步到远程,大概10分钟左右把,当然也可以手工远程提交。