在服务器上搭建 Git
参考链接:https://git-scm.com/book/zh/v2/%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E7%9A%84-Git-%E5%9C%A8%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E6%90%AD%E5%BB%BA-Git
在本地创建git_server_test文件目录
mkdir git_server_test
cd git_server_test
touch hello.txt
执行git初始化
在git_server_test目录下,初始化
git init
git add .
git commit -m "init"
克隆一个.git裸仓库
在开始架设 Git 服务器前,需要把现有仓库导出为裸仓库——即一个不包含当前工作目录的仓库。
为了通过克隆你的仓库来创建一个新的裸仓库,你需要在克隆命令后加上 —bare 选项。
返回git_server_test的上级目录,执行以下命令
git clone --bare ./git_server_test git_server_test.git
现在目录下会有一个git_server_test.git目录,包含.git目录的副本
把裸仓库放到服务器
有了裸仓库的副本,剩下要做的就是把裸仓库放到服务器上.
通过以下命令复制你的裸仓库来创建一个新仓库
scp -r git_server_test.git root@1.123.34.35:/home/gitserver
cd /home/gitserver
ls
# git_server_test.git
在/home/gitserver目录下会出现git_server_test.git目录。
在本地clone服务器代码
在本地切换一个新的目录下,clone代码
git clone root@1.123.34.35:/home/gitserver/git_server_test.git
将代码clone到本地,查看目录会显示hello.txt文件。
在改目录下修改文件vi hello.txt,添加hello内容。
然后提交并push代码
git add .
git commit -m "add hello text"
git push origin master
推送成功,可以在另外一个git_server_test目录中查看是否成功。
查看推送是否成功
切换到第一步创建的git_server_test目录下,此时无法直接执行pull命令,因为还没添加远程地址,
首先添加远程地址
git remote add origin root@1.123.34.35:/home/gitserver/git_server_test.git
查看远程地址是否成功
git remote -v
成功后就可以执行git pull origin master。查看hello.txt内容已经更新。
删除远程地址
git remote rm origin
生成ssh公钥免密码登录
查看本地的公钥
cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tjom/BWDSU
GPl+nafzlHDTYW7hdI4yZ5ew18JH4JW9jbhUFrviQzM7xlELEVf4h9lFX5QVkbPppSwg0cda3
Pbv7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8V6RjsNAQwdsdMFvSlVK/7XA
t3FaoJoAsncM1Q9x5+3V0Ww68/eIFmb1zuUFljQJKprrX88XypNDvjYNby6vw/Pb0rwert/En
mZ+AW4OZPnTPI89ZPmVMLuayrD2cE86Z/il8b+gw3r3+1nKatmIkjn2so1d01QraTlMqVSsbx
NrRFi9wrf+M7Q== schacon@mylaptop.local
如果该文件不存在,可以通过ssh-keygen生成
% ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/xiaq/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in ~/.ssh/id_rsa.
Your public key has been saved in ~/.ssh/id_rsa.pub.
The key fingerprint is:
8a:77:ec:a1:77:42:8d:5d:ab:17:33:ac:87:06:20:3c xiaq@blackie
The key's randomart image is:
+--[ RSA 2048]----+
| |
| |
| . |
| E . . |
| o .S+ o . |
| . o+ o * |
| . o.+. + + |
| . +o.* o |
| ...+ o |
+-----------------+
添加本地公钥到服务器
在主机上建立一个 git 账户,让每个需要写权限的人发送一个 SSH 公钥, 然后将其加入 git 账户的 ~/.ssh/authorized_keys 文件。
将本地的id_rsa.pub内容添加到~/.ssh/authorized_keys文件。