首页 > 系统 > Linux >

windows下git服务器搭建及常见问题

2016-10-15

windows下git服务器搭建及常见问题。Windows+Git+TortoiseGit+COPSSH安装图文教程。

Windows+Git+TortoiseGit+COPSSH安装图文教程

准备工作:

1、 Git-1.8.1.2-preview20130201.exe

下载地址:

https://code.google.com/p/msysgit/downloads/list

2、 Copssh_4.1.0_Installer.exe

下载地址:

http://download.csdn.net/download/zzjzmdx/4636227

3、 TortoiseGit-1.8.5.0-64bit.msi

下载地址:

https://code.google.com/p/tortoisegit/wiki/Download?tm=2

服务器系统:Windows Server 2003 SP2

客户端系统:Windows 7 SP1

服务器端安装及部署

1、安装Git

\

\

\

\

\

\

此处选择默认安装

\

此处选择第三个,不去转换成unix的代码风格

\

完成安装

2、安装SSH及配置用户

\

\

\

安装在根目录下,避免路径中有空格,造成不必要的麻烦

\

此处是设置SSH的帐号密码

\

\

安装好后提示通过“COPSSH Control Panel”添加用户

\

完成安装

\

开始配置SSH用户

\

选中“Users”选项卡,点击Add按钮添加用户

\

\

选择用户名,此处可以选择刚刚安装SSH时设置的“SvcCOPSSH”用户,也可以自己新建一个用户来操作,本教程新建了一个GitAdmin的用户作为管理账户。

\

\

安装完成后还有两个操作:

1、将Git安装目录D:\Program Files\Git\libexec\git-core文件夹下的git-upload-pack.exe、git.exe、git-receive-pack.exe和git-upload-archive.exe这4个文件复制到SSH的安装路径D:\ICW\bin下。

2、将Git安装目录D:\Program Files\Git\bin\libiconv-2.dll复制到D:\ICW\bin下。

3、连接Git版本库

\

进入SSH安装目录下的bin文件夹,调用ssh.exe文件,输入以下代码:

“ssh GitAdmin@你的服务器名称或者IP地址”

\

键入yes

\

输入密码

\

看到这个界面,代表连接成功。此时你已经通过SSH协议连接上了Git。

4、建库操作

登录完成后,此时的实际路径是在D:\ICW\home\GitAdmin

建库操作步骤如下:

mkdir testgit //创建testgit文件夹

cd testgit //进入testgit文件夹

git init //版本库初始化,会以testgit为库名建立一个新库

touch first.txt second.txt //创建first.txt和second.txt文本文档

git add . //将文件添加至Git

git config –global user.email “you@example.com”//设置邮箱地址

git config –global user.name “Your Name” //设置用户名

git commit –m “init” //将修改提交至Git

cd ~/.ssh //进入.ssh文件夹

ssh-keygen –t rsa –C “you@example.com” //生成公钥,默认名称为id_rsa

至此,服务器端的安装与配置完毕。

注:Git默认设置克隆版本修改master版本内信息后不能提交修改,如需开放权限,要修改.git/config文件后面添加如下代码:

[receive]

denyCurrentBranch = ignore

客户端安装与配置

1、安装Git

安装步骤与服务器端相同。

2、安装TortoiseGit

\

\

\

\

\

安装完毕

\

此时在你的电脑鼠标右键就能看到Git已经集成到了系统快捷操作中。

3、配置TortoiseGit

首先设置TortoiseGit>Settings>Network中SSH client的值为”d:\Program Files(x86)\Git\bin\ssh.exe”。

\

新建测试local文件夹,右键选中Git Clone选项,会弹出对话框,输入正确的URL,选择Web方式,选好本地的文件夹,点击确定。

\

URL正确的话,会弹出输入密码界面,输入正确后,会将库信息克隆到本地。

\

看到Success,恭喜你,你已经获取到了服务器上的库信息。

在使用Git Push代码到数据仓库时,提示如下错误:

[remote rejected] master -> master (branch is currently checked out)

错误原型

remote: error: refusing to update checked out branch: refs/heads/master

remote: error: By default, updating the current branch in a non-bare repository

remote: error: is denied, because it will make the index and work tree inconsisten

remote: error: with what you pushed, and will require 'git reset --hard' to match

remote: error: the work tree to HEAD.

remote: error:

remote: error: You can set 'receive.denyCurrentBranch' configuration variable to

remote: error: 'ignore' or 'warn' in the remote repository to allow pushing into

remote: error: its current branch; however, this is not recommended unless you

remote: error: arranged to update its work tree to match what you pushed in some

remote: error: other way.

remote: error:

remote: error: To squelch this message and still keep the default behaviour, set

remote: error: 'receive.denyCurrentBranch' configuration variable to 'refuse'.

To git@192.168.1.X:/var/git.server/.../web

! [remote rejected] master -> master (branch is currently checked out)

error: failed to push some refs to 'git@192.168.1.X:/var/git.server/.../web'

错误原因以及解决

这是由于git默认拒绝了push操作,需要进行设置,修改服务端的.git/config文件后面添加如下代码:

[receive]

denyCurrentBranch = ignore

无法查看push后的git中文件的原因与解决方法

在初始化远程仓库时最好使用 git --bare init 而不要使用:git init

如果使用了git init初始化,则远程仓库的目录下,也包含work tree,当本地仓库向远程仓库push时, 如果远程仓库正在push的分支上(如果当时不在push的分支,就没有问题), 那么push后的结果不会反应在work tree上, 也即在远程仓库的目录下对应的文件还是之前的内容。

解决方法:

必须得使用命令 git reset --hard 才能看到push后的内容.

相关文章
最新文章
热点推荐