代码备份很重要,一般来说,我们可以直接服务器连接GitHub或其他代码托管平台进行代码的版本管理及备份,但有时我们的工作服务器无法联网,此时为了方便备份管理,可以将电脑本地和Linux服务器端的git仓库进行同步。具体教程如下:
-
在服务器和本地生成ssh密钥对(如果已经有可跳过)
- 生成的密钥对可以通过
ls ~/.ssh/查看
- 生成的密钥对可以通过
-
将本地 SSH 公钥添加到服务器的授权密钥列表中
-
在 Mac 本地终端中,使用以下命令将公钥(默认是
~/.ssh/id_rsa.pub)内容复制到剪贴板:pbcopy < ~/.ssh/id_rsa.pub- 或
cat ~/.ssh/id_rsa.pub后复制
- 或
-
在服务器端,将公钥添加到
~/.ssh/authorized_keys文件中。如果~/.ssh目录不存在,需要先创建它(mkdir -p ~/.ssh),然后使用以下命令将公钥内容添加到authorized_keys文件中:
-
-
初始化服务器上的git仓库(如果还没有初始化的话)
cd target_foldergit initgit add .git commit -m "initial commit"
-
在本地克隆服务器上的git仓库
- 进入希望放置该仓库的位置
git clone username@server_ip:server_folder- 可以通过
git remote -v来检查远程仓库设置
-
设置完毕后就可以在本地修改并通过push和pull命令与远程仓库交互啦
git push origin mastergit pull origin master
-
建议在每次编辑前,先在服务器和本地端
git status检查
此外,为了使登陆更简便,可以
-
在跳板机和目标服务器中都添加本地密钥(即将本地的公钥添加到跳板机和目标服务器的
~/.ssh/authorized_keys文件中(如上所述) -
在本地修改
~/.ssh/config文件如下:-
Host bastion //any name is ok HostName [your jumphost ip] User [your user name] Host server //any name is ok HostName [your target server ip] User [your user name] ProxyCommand ssh -q -W %h:%p bastion
-
-
此时可以通过
ssh bastion和ssh server来直接连接对应的服务器,克隆服务器端的git仓库时,可以直接git clone server:server_folder