sudo apt-get update # 更新软件源
sudo apt-get install git # 安装Git
git --version # 查看git版本
sudo adduser git # 创建git用户
sudo vim /etc/passwd # 安全起见,禁止git用户登陆
将类似于
git:x:1001:1001:...:/home/git:/bin/bash
的位置 改为:git:x:1001:1001:...:/home/git:/usr/bin/git-shell
cd /srv && sudo git init --bare sample.git # 在/srv目录下初始化Git仓库sample.git sudo chown -R git:git sample.git # 修改sample.git 所有者权限
注意:以下提到的/srv/sample.git都是由此而来,不做赘述
windows用户请用git带的git bush来操作,mac和ubuntu用户直接开terminal就好
$ssh-keygen -t rsa -C "your_email@example.com" # 生成公钥和私钥 vim ~/.ssh/config # 配置git服务器和私钥信息
按i 输入以下内容
Host my_xx # 随便起一个名字
HostName vien.org # 你的服务器ip地址或者域名,之后提到不做赘述
User git # 服务器git用户
Port 22 # ssh端口默认22就可以
IdentityFile ~/.ssh/id_rsa # 私钥位置
按esc输入wq! 保存退出 拷贝公钥到服务器配置文件
cat ~/.ssh/id_rsa.pub # 查看然后复制公钥
-------服务器操作开始-------
sudo vim /home/git/.ssh/authorized_keys # 编辑服务器用户认证文件(存放用户公钥)
将刚刚复制的公钥粘贴到这个文件中,注意一个公钥一换行
-------服务器操作结束-------
回到客户端 找一个你喜欢的目录来clone git库
git clone git@vien.org:/srv/sample.git # clone仓库
然后大家就可以都用这个空库来搭建项目开发了 当然,你也可以push本地已有项目到这个库。进入到你的项目根目录
git init # 初始化仓库
git remote add origin git@vien.org:/srv/sample.git # 添加远程仓库
git add . # 将所有文件加入到git的index,标记追踪
git commit -m 'first release' # 提交到当前分支的HEAD节点
git push origin master # 推送到远程仓库
这个操作主要用于直接把代码推送上线,便于项目上线
sudo add-apt-repository ppa:git-core/ppa
sudo apt-get update
sudo apt-get install git
mkdir /srv/sample
cd /srv/sample
git init
git config receive.denyCurrentBranch updateInstead
把本地的 ~/.ssh/id_rsa.pub
的内容导入到远程服务器的 ~/.ssh/authorized_keys
里(允许本地直接连接 git)
如果本地没有生成过key,请先生成,邮箱写你自己的就可以,其实邮箱写什么并不重要。
ssh-keygen -t rsa -C "your_email@example.com" # 生成公钥和私钥
获取本地公钥
vim ~/.ssh/id_rsa.pub # 复制出来
放到服务器 ~/.ssh/authorized_keys
中
vim ~/.ssh/authorized_keys # 刚才复制的东西粘贴进来保存
git remote add server ssh://root@IP地址或者域名/srv/sample
# 如果带端口的话(ssh端口默认22,不是的话需要带端口)
git remote add server ssh://root@IP地址或者域名:端口号/srv/sample
这里注意,你登录服务器用的哪个用户执行的操作,就把root换成你对应的用户名,比如你用ubuntu登录的,root就换成ubuntu。因为,~/.ssh/authorized_keys
是你当前登录用户下的文件,只有对应起来,你才能连上。并且因为有一些权限问题,如果你不对应,很容易出现没有操作权限无法写入的问题。
之后你就可以通过远程名称server来进行推送了
git add .
git commit -m "first release"
git push server master
viencoding.com版权所有,允许转载,但转载请注明出处和原文链接: https://viencoding.com/article/48