在亚马逊AWS(ubuntu)服务器搭建git,用git从客户端上传代码到服务器
来源:互联网 发布:圆形蓄水池算法 编辑:程序博客网 时间:2024/06/06 02:40
背景介绍:
本地客户端电脑是windows 10系统(64位),服务器是申请的亚马逊AWS免费版,服务器的系统是ubuntu 16.04。
为了将自己电脑(本地客户端)上写的代码上传到服务器上,需要在客户端、服务器上都装上git,同时进行设置。
详情如下:
1. 在服务器端安装git
(1)连接服务器,并输入命令 sudo apt-get install git ,即安装好git
(2)为了安全,新建一个专门部署代码的无特权用户。
输入命令 useradd -m git
需设置密码,之后还会提示输入一些其他信息,不用理会,直接enter就可以了。
【注意,有人建议禁用用户git的shell权限,即不能通过命令进入git用户,也无法用账户名和密码连接git。
禁用的方法是,输入命令:vim /etc/passwd
即打开文件passwd,将其中的
git:x:1001:1001::/home/git:/bin/bash
替换成
git:x:1001:1001::/home/git:/usr/bin/git-shell。
本文的方法,不能禁用用户git的shell权限,即无需替换】
(3)新建一个文件夹作为接收代码的仓库
依次输入命令:
cd /home
mkdir git_repository
即切换到home文件夹,然后新建一个文件夹git_repository
(4)把文件夹git_repository所有者和所在用户组都改成git用户,输入:
chown -R git:git git_repository
【注意,命令中一定要有-R,否则在客户端推送文件到服务器的时候,会出现insufficient permission for adding an object to repository database 的错误】
(5)切换到文件夹git_repository,初始化为git仓库,依次输入:
cd /home/git_repository
git init
然后,让仓库接收代码提交:
git config receive.denyCurrentBranch ignore
(6)在/home/git下创建.ssh文件夹,并在.ssh下创建authorized_keys文件【很重要,后面有用】
分别输入如下命令即可:
cd /home/git/
mkdir .ssh 【创建文件夹用mkdir】
cd /home/git/.ssh/
touch authorized_keys 【创建文件用touch】
注意,如果无效查看/etc/ssh/sshd_config文件一行:(AuthorizedKeysFile
%h/.ssh/authorized_keys)有没有被注释掉,重启ssh服务(命令为service ssh restart)
2. 在客户端安装git
(1)因为自己的电脑(也就是客户端)是windows 10 系统,所以直接在git的官网下载对应的源程序,双击安装,一直点确定即可。
安装成功后,电脑上回多出来如下界面:
(2)打开上图的Git GUI,点击“Created New Repository”在客户端某个文件夹上创建客户端上的.git仓库。
然后,打开上图的Git Bash,它可以使用命令来配置本地的Git。
首先,配置本地的git用户名和邮箱(git是通过用户名和邮箱作为登录方式的),命令分别如下两行:
git config --global user.name “用户名”
git config --global user.email “邮箱”
(3)在自己的电脑上生成git密钥(密钥有公钥id_rsa.pub和私钥id_rsa,用来作为和远程服务器连接的验证)
在Git Bash中输入如下命令:
ssh-keygen -t rsa
并按回车三下,(是因为有提示你是否需要设置密码,如果设置了每次使用git都会用到密码,一般不设置,直接回车)。
运行结果如下图,红框中的地址就是公钥和私钥的存储地址。
(可以用命令 cat ~/.ssh/id_rsa.pub查看公钥的内容)
(4)将自己电脑上的公钥id_rsa.pub上传到服务器上,仍然需要在Git Bash中输入命令,如下:
cat ~/.ssh/id_rsa.pub | ssh root@服务器的IP地址 "cat >> /home/git/.ssh/authorized_keys"
(上面命令的大概意思是将本地的公钥上传到服务器,并写入在1.6部创建的文件中。其中,root为服务器的用户名,命令确定后需输入root的密码。完成后,可在服务器上输入 vi/home/git/.ssh/authorized_keys,查看里面的内容是否和id_rsa.pub一样,如一样,即上传成功)
【注意:上面的命令运行时,如出现错误 Permission denied (publickey)时的解决办法,如下:
在服务器上,输入命令:
sudo vi /etc/ssh/sshd_config
找到:PermitRootLogin prohibit-password禁用
添加:PermitRootLogin yes
退出并保存。
再输入命令,sudo service ssh restart】
(5)打开Git GUI,点击Remote--Add,出现如下界面,Name对应的框中随意输入一个名字,
Location对应的框中输入 git@***.***.***.***:/home/git_repository/.git
@前面的git就是第1.2步在服务器创建的用户git,***.***.***.***是服务器的IP地址,后面的为第1.5步在服务器上建立的git仓库。
点击上图中的add按钮,成功后的界面如下图:
这样,就成功建立了客户端git与服务器git之间的联系。
【注意,如在第1.2步中修改了 git:x:1001:1001::/home/git:/bin/bash 为 git:x:1001:1001::/home/git:/usr/bin/git-shell,会有连接错误。】
3. 推送文件到服务器git
(1)打开Git GUI,如下图,点击客户端的git仓库地址(自己电脑上的是“E:/gitdir”),如果没有,可以点击“Created New Repository”新建一个。
(2)打开后,出现如下界面,按标记的顺序,依次点击5个按钮,即可。
(3)点击上图的“Push”按钮会出现下图的界面,注意红框中的三个选项,选择1个,点“Push”按钮。如上传成功,会有Success的提示。
4. 在服务器上获取文件
在其他客户端下载第3步推送到服务器git的文件就不说了。这里介绍如何把服务器git里的文件放到服务器其他的文件夹中。
其实,在服务器的git目录中,是看不到本地上传的文件的,也无法对他们进行操作。
如需将这些文件取出来放在服务器的其他文件夹,可用如下命令:
git clone git@***.***.***.***:/home/git_repository/.git /where/you/want/
上面,git@***.***.***.***:/home/git_repository/.git 是服务器及服务器上git的地址, /where/you/want/ 是准备放拷贝文件的目录。
此外,当本地客户端的文件提交到服务器后,如果希望/where/you/want/中的文件也自动更新,可使用git hook来配置。
【非常有用的命令,git hook部署代码、git-dir、work-tree、git clone,留着】
- 在亚马逊AWS(ubuntu)服务器搭建git,用git从客户端上传代码到服务器
- Git服务器搭建+上传代码
- ubuntu搭建GIT服务器与客户端
- ubuntu完美搭建git服务器 客户端
- AWS亚马逊服务器搭建VPN
- 搭建Git服务器(Ubuntu虚拟机)和windows客户端
- git 上传更新的代码到服务器
- ubuntu搭建Git 服务器
- Ubuntu搭建Git服务器
- Ubuntu Git服务器搭建
- ubuntu搭建git服务器
- ubuntu git 服务器搭建
- ubuntu搭建git服务器
- Ubuntu搭建Git服务器
- ubuntu搭建git服务器
- ubuntu搭建Git服务器
- ubuntu-- git服务器搭建
- ubuntu搭建git服务器
- Maven私服软件Nexus
- JQ复选框,选择后按钮触发后出现图片,可同时出现多个图片
- 51nod--1098最小方差
- Spring 体系结构(Spring 概述 二)
- 接竹竿
- 在亚马逊AWS(ubuntu)服务器搭建git,用git从客户端上传代码到服务器
- 2017多校训练赛第一场 HDU 6035 Colorful Tree (dfs+正序统计)
- PAT乙级 1011. A+B和C (15)
- JQuery_dom节点操作
- OSG动画库Animation解析(三)
- RAIDraid阵列卡详解
- npm install时总是报phantomjs-prebuilt@2.1.14安装失败
- 浅谈hibernate的sessionFactory和session
- hdu多校联赛 Balala Power!