git "The remote end hung up unexpectedly"
git config --global http.postBuffer 524288000 git config --global http.maxRequestBuffer 100M git config --global core.compression 0
早些时候研究过gitosis（gitosis admin and config），这货很久没更新了，而本作为轻量版本的Gitolite，功能上已经超越gitosis。两者原理差不多。1、安装 $sudo apt-get install gitolite3 $sudo addgroup git $adduser --home /home/git --ingroup git git 2、切换到git用户，初始化git的admin帐号。 $su git $gitolite setup -pk /home/u0u0/gitmb_rsa.pub $exit 注：事先生成gitmb_rsa.pub并传到服务器。3、克隆admin仓库，并添加一个新仓库。git clone git_mb:gitolite-admin.git注：git_mb是ssh别称，参开之前gitosis设置的后半部分。编辑gitolite.conf，添加一个repo repo newrepo RW+ = @all 提交生效 git commit -m "add new repo" git push 4、克隆新仓库，测试提交 git clone git_mb:newrepo.git cd newrepo echo "README" > README git add README git commit -m "Added README" git push origin master 注：由于新仓库是个空仓库，第一次提交要用"git push origin master"
1、先把现有仓库导出为裸仓库，即一个不包含当前工作目录的仓库$ git clone --bare my_project my_project.git 2、把裸仓库移到服务器上$ scp -r my_project.git user@git.example.com:/opt/git3、用ssh帐号登陆测试下$ git clone user@git.example.com:/opt/git/my_project.git如何在服务器上为每个需要访问git仓库的人都adduser，不好玩。推荐方式： 主机上建立一个 git 账户。 让git帐号拥有仓库目录的读写权限。 让每个需要写权限的人发送一个 SSH 公钥，然后将其加入 git 账户的 ~/.ssh/authorized_keys 这丝毫不会影响提交的数据 — 访问主机用的身份不会影响提交对象的提交者信息。注：提交者的信息在本地仓库用下面的命令设置$ git config user.email "you@example.com" $ git config user.name "u0u0"参考（墙掉了）： http://git-scm.com/book/zh/服务器上的-Git-在服务器上部署-Git
TortoiseGit安装与使用＝＝＝＝＝＝＝＝msysgit＝＝＝＝＝＝＝＝ 1、安装依赖包msysgit http://code.google.com/p/msysgit/downloads 2、 设置环境变量HOME 系统属性 -> 高级-> 环境变量 -> admin的用户变量 -> 新建 变量“HOME”，值“D:/u0u0”3、任意地方右键菜单，选择git-gui 点击菜单：帮助 -> Show SSH Key 点击button，Generate Key 会提示输入保护密码。 完成后在D:/u0u0/.ssh/目录下自动生成两个文件 id_rsa和id_rsa.pub4、id_rsa.pub发给git管理人员配置如git服务器和对应仓库权限。5、任意地方右键菜单，选择git-gui 点击“克隆已有版本库” Source Location: git@192.168.2.27:xFace3-wp.git Target Location: 本地文件夹 点击“克隆”。＝＝＝＝＝＝TortoiseGit＝＝＝＝＝＝＝ 1、安装TortoiseGit和language pack。 在Target Location目录下右键开始使用。
工作中准备使用git 网管已配置好服务器，未配置用户和项目。 这篇笔记不涉及服务器的安装，包含了安装后的用户添加和项目添加。 首先git有几个概念 git仓库服务器，git仓库管理人员PC，git客户端PCgit的管理很git，用git commit and push来管理～ 所以git仓库管理人员PC，会克隆一个特殊仓库，gitosis-admin.git* git仓库管理人员PC 克隆管理仓库。 //前提条件，PC上.ssh目录包含了服务器已配置的git root的密钥。#git clone git@192.168.2.27:gitosis-admin.git* 新建用户（管理帐号）和项目名称 1、修改刚才pull下来的gitosis.conf文件。[gitosis] [group gitosis-admin] members = root@git writable = gitosis-admin [group xFace3-wp] members = u0u0 writable = xFace3-wp2、keydir里面对应添加 u0u0.pub文件。（ssh-keygen -t rsa生成）注意：key的文件名必须和配置文件中的保持一致。#git add keydir/u0u0.pub #git commit -a -m"add user and project" #git push*初始化项目（切换到用户帐号u0u0）#mkdir xFace3-wp #cd xFace3-wp #git init #touch test.txt #git add . #git config user.email "you@example.com" #git config user.name "u0u0" #git commit -a -m 'init xFace3-wp' #git remote add origin git@192.168.2.27:xFace3-wp.git #git push origin master============以上假定三个角色在不同的pc或不用的用户下============ 如何既是git仓库管理员，又是开发人员，在自己的电脑上切换用户显然不是很方便， 这时候我们需要ssh-keygen来管理多个帐号。同一电脑上同用户下多个git帐号配置. 1、修改~/.ssh/configHost root_git HostName 192.168.2.27 User git IdentityFile ~/.ssh/gitroot/id_rsa Host liukn_git HostName 192.168.2.27 User git IdentityFile ~/.ssh/gitliukn/id_rsa虽然修改了ssh的配置文件，但是ssh-agent里面没有cache，可能还是会出现只能一个帐号登陆的情况。或者是切换一个帐号再用另一个就不行了。 我们需要手动加入到ssh-agent中去（每次开机都要重加，便捷的方式是加入到bash_profile）添加#ssh-add ~/.ssh/gitroot/id_rsa Identity added: /Users/u0u0/.ssh/gitroot/id_rsa (/Users/u0u0/.ssh/gitroot/id_rsa)查看结果#ssh-add -l 2048 1d:3d:37:43:f6:a1:1d:a4:36:7c:ee:a3:de:da:e1:80 /Users/u0u0/.ssh/gitliukn/id_rsa (RSA) 2048 10:03:a6:4f:03:4e:0c:80:6f:4c:ef:51:73:96:d8:32 /Users/u0u0/.ssh/gitroot/id_rsa (RSA)现在由root_git和liukn_git别名来区分不用帐号#git clone liukn_git@xFace3-wp.git或者#git clone root_git@gitosis-admin.git