一、在window下搭建git服务器
1、cyswin这个模拟环境。这个包里面已经有git服务了(目前我的git就是在这个里面。)
2、同时还需要sshd服务器才行。包里面也有了
3、git服务器与sshd服务器的关系
git服务器如果以ssh协议来连接的话,则不需要这样的形式:专门启动git服务器作为一个进程,侦听某个端口。
思路为:只需要配置好sshd服务器,侦听某个端口,重点把公钥加到authorized_keys去。变成了,以ssh客户端连接sshd服务器的形式了。
能不能连接,就看authorized_keys中的公钥是否匹配了。
ssh公钥生效,.ssh目录的权限必须是0700, .ssh/authorized_keys文件权限必须是0600
git clone ssh://[email protected]:/path/test.git/
git客户端应该会连接ssh服务器,然后拿"/path/test.git/"
4、在cyswin下配置shhd步骤
在syswin控制台输入
ssh-host-config -y #将sshd注册为系统服务,并设置成为自动启动。
在syswin控制台输入
net start|stop sshd
好像是:sc start sshd
or sc sshd start
如果有问题,可以删除服务,重新安装
删除服务:sc delete sshd
经验:能够使用net,关键是在运行ssh-host-config的时候,是否输入了damon的名称。
\etc\sshd_config配置。
公钥是加到
home\Administrator\.ssh\authorized_keys
二、在window下使用git客户端
这种形式只是客户端,git服务端可能在本地的window下,也可能在远程的linux平台上。
git bash就是一个git客户端。
去http://msysgit.github.io/网站上下载一个"git for windows",这个是已经编译好的二进制。
git for windows是免编译的,因为已经预先编译成适应window平台的二进制。所以能够直接点击下一步这样的方式来安装。
与msysGit不是同一个东西。
msysGit的主页提供了两个项目:Git for Windows和msysGit。
安装好git for window后。这个软件会有两个组件:git bash 和 git gui。
注意点
1、在安装的时候会要求选择哪个作为ssh客户端。有两个供选择:plink 和 openssh(这个是默认的)
客户端选择不同,会影响密钥的解析方式。选择openssh。
echo $GIT_SSH
查看使用的是哪个客户端。
2、如果已经安装好后,要修改ssh客户端。在git bash命令行下输入:export GIT_SSH=‘/f/installsoft/Git/git-for-windows/bin/ssh.exe‘
这种只是临时修改。要永久生效的话,把这一句加入到\git-for-windows安装目录\etc\profile文件中去
export GIT_SSH=‘/f/installsoft/Git/git-for-windows/bin/ssh.exe‘
修改profile文件后,需要运行"source \etc\profile"才会生效
运行 git [email protected]:test.git
git bash会按照设定的ssh客户端去连接sshd服务器。
是使用什么私钥发给服务端呢?如果使用ssh.exe作为ssh客户端的话,则是~/.ssh/config文件里面配置的。
3、生成公钥
ssh-keygen -t "[email protected]" -f /f/install/Git/mykey/id_rsa_first
如果没有指定-f,默认是生成到~/.ssh/目录下,默认名称是id_rsa(id_rsa和id_rsa.pub两个文件,对应是私钥和公钥)
建议使用纯命令行功能。因为图形界面形式下,有些功能没有实现。使用纯命令能够方便知道原理。
git config --global user.name ‘wangtao‘
git config --global user.email [email protected]
设置配置
三、整理市面上工具之间的关系
http://git-scm.com/download 这个才是git的官网
这个是一个客户端工具的官网:http://msysgit.github.io/。这个其实就是把git做成方便window下面使用的。集成了:git bash 和 git gui。
msysgit是 Git 版本控制系统在 Windows 下的版本。
Historically, Git on Windows was only officially supported using Cygwin. To help make a native Windows version, this project was started, based on the mingw fork.
只能运行在 Cygwin 下的 Git。
包括了:git bash、git gui
msysGit 有个简单的 GUI 工具,及简单的 Explorer 集成;但它自带的 Bash 非常好用,深得 Linux 的真传。
GitHub 使用 git 分布式版本控制系统,而 git 最初是 Linus Torvalds 为帮助Linux开发而创造的,它针对的是 Linux 平台,因此 git 和 Windows 从来不是最好的朋友,因为它一点也不像 Windows。GitHub 发布了GitHub for Windows,为 Windows 平台开发者提供了一个易于使用的 Git 图形客户端。
安装tortoisegit之前,必须要安装msysgit
有人说:TortoiseGit 是对 msysGit 命令行的封装,因此需要先安装 msysGit。
为什么TortoiseGit不像TortoiseSVN一样,把SVN命令行工具集成在安装包中呢?我猜想是以下几点原因:
Git官方从未出过Windows版本二进制包;
msysGit和TortoiseGit是两个不同的团队开发的;
msysGit和TortoiseGit的更新周期差异较大;
TortoiseGit团队希望安装包更小;
TortoiseGit团队给用户更灵活的选择Git版本的权利。
TortoiseGit 只是 GUI 工具,使用它需要先安装 msysGit,这是正宗的 Git 之 Windows 版本。msysGit 有个简单的 GUI 工具,及简单的 Explorer 集成;但它自带的 Bash 非常好用,深得 Linux 的真传。
Tortoisegit提供了良好的界面操作GIT,底层实际使用Git-1.7.4客户端完成所有GIT功能
Git-1.7.4, 这个是GIT客户端,可以在GIT的官方网站上下载
Tortoisegit与msysgit是什么关系?最终都要依赖于git?
我可以理解这两个东西都是针对windows用户更好使用git服务的。
TortoiseGit是Windows下不错的一款Git客户端工具,在Mac下推荐使用sourcetree(sourcetree不支持windowxp,只支持window7)
SourceTree是Mac平台上一款著名的Git GUI工具,也推出了window下的版本(win7)。
mac下还有Tower,是一个功能强大的Git客户端。
git gui CLIENTS:是一个统称。没有特别指哪个操作系统平台。它就是git客户端的图形化版本。其实就是省去了命令操作。做成图形化。在git的官网上就列出了很多git gui CLIENTS。GUI Clients这是官网的称呼。官网对所有git客户端,进行了图形化都叫做git GUI Clients。官网上列出来市面上所有平台的图形化客户端。有linux的也有windows下的。
git gui则是window下的git服务端图形管理工具。在msyssit安装后就会存在两个:git bash 和 git gui(以图形化管理服务端版本的)
两个称呼:git bash 和git gui。git gui嵌入了git bash。
window版本的git服务端:msysgit、gitstack
这么理解:因为git官方只提供源码包进行编译安装。没有专门针对window来做安装。不友好。于是有的公司就自己做了基于window的版本,比如msysgit。
正如msysgit官网说的:We bring the awesome Git SCM to Windows。
window版本的git客户端(分图形界面和shell界面的):git bash、TortoiseGit、GitHub for Windows、SourceTree
其他操作系统下的git gui工具:
1、GitHub这个公司还做了针对mac系统下的图形客户端,GitHub for mac。要区分一下,所以叫做for windows
2、tower
3、Gitbox
4、GitX-dev
5、gitg linux平台下的图形客户端。
Git comes with built-in GUI tools for committing (git-gui) and browsing (gitk)
内建的gui 工具用来提交和浏览版本。
几个ssh客户端:
TortoisePLink,是一个ssh客户端。
还有openssh,这是乌龟git内置的ssh客户端。TortoisePLink来自于putty这个软件。
安装git的时候,会提示使用plink客户端还是openssh客户端。