异想天开

What's the true meaning of light, Could you tell me why

搭建git服务器

日期:2015-04-13 23:33:41
  
最后更新日期:2017-07-16 15:32:07
【技术】
搭建git服务器其实很简单,centos的机器:
[code lang="cpp"]
yum install git
[/code]
安装这个就ok了,vps上面一般安装了openssh-server.x86_64,就这些就Ok啦?是的,安装完这些就可以了,可以配置一个简单的git server。
1.配置git server
第一步:添加git用户
adduser git
第二步:创建好/home/git/.ssh/目录,并添加文件:/home/git/.ssh/authorized_keys
这个文件就是存放开发者的 SSH 公钥,若不用公钥做验证登陆,这个文件可以为空但一定要创建。记得切换为git用户创建。
第三步:建一个空仓,假设在/svr目录执行 git init --bare sample.git
chown -R git:git sample.git
这三步就是最基本的,git利用的也是ssh登录协议。当然还是防止ssh git@server这样登录服务器,可以改变git用户的bash,编辑/etc/passwd文件
git:x:1000:1000::/home/git:/bin/sh
改为:
git:x:1000:1000::/home/git:/usr/bin/git-shell
这样就可以在另外一台主机上面:
git clone git@server:/svr/sample.git
拉取sample.git仓了

2. 添加ssh公钥验证
1.生成ssh公钥和私钥,生成好的公钥追加到服务器上的/home/git/.ssh/authorized_keys文件,这样应该就是无密码登录
ssh-keygen -t rsa -C "必须要填你的邮箱号码" -b 2048
若有多个git站点,那么需要在~/.ssh/config文件里面这样设置:
[code lang="cpp"]
Host github.com
HostName github.com
Compression yes
IdentityFile ~/.ssh/id_rsa1


Host coding.net
HostName coding.net
Compression yes
User foreverone
IdentityFile ~/.ssh/id_rsa
[/code]
设置完了,可以使用"ssh -T git@github.com"验证是否可以连接,然后验证提交,不需要输入密码。

3. git新手需要知道的命令
1.配置git使用vim
git config --global core.editor vim
2.git常见操作
#拷贝远程sample.git分支
git clone git@server:/svr/sample.git
cd sample.git
#配置本地user
git config --global user.name xxx
git config --global user.email xxx
这是全局配置,删除
git config --unset --global user.name xxx
git config --unset --global user.email xxx
#创建分支
git branch experiment
#进入分支
git checkout experiment
#添加文件
git add xxx
#提交到本地
git commit -a
#切换分支
git branch master
#master分支合并experiment分支
git merge experiment
#master提交
git commit -a
#若删除本地experiment分支
git branch -d experiment
#master分支push到远程
[code lang="cpp"]
git push origin <local_branch_name>:<remote_branch_name>
git push origin master:master
[/code]
一般当前如果不在该分支时,使用这种方式提交。如果当前在 master 分支下,也可以直接提交
git push

4. 在github提交代码
在你本地电脑任何一个空目录下拉取git上面的分支,根据前面的步骤,生成的ssh公钥添加到github上面公钥管理项里面,后面的操作就不需要输入账号和密码,对于频繁的提交操作可以节省很多事。
git init建立一个空的git目录
git remote add master git地址
git add --all 本地添加
git commit -a -m "提交注释" 本地提交
git push -u origin master 远程提交
这就是笔者在github常用的操作, git add时,你可以只添加你需要提交的部分。部分提交时,不需要加-a参数了。就这样,就可以便捷使用git了。以后就可以解锁其他高逼格的姿势。
PS:
目前git不支持https clone后提交了,需要使用ssh协议,或者
git remote set-url origin ssh://git@github.com/acjog/blog_web.git 修改下提交