linux 在本地对远程仓库执行git pull
假设:你的同事在Linux主机A上生成了一个git仓库S用来维护一堆配置文件,配置文件会经常发生变动。你编写了一个脚本并在Linux主机B上执行此脚本,这个脚本的执行需要读取你的同事在A上维护的配置文件,那么这个时候在B上克隆一个仓库S是一种可行的办法,这样你的脚本就只需要读取本地的配置文件。具体的步骤是这样的:
- 首先,你需要执行类似下面的命令:
git clone username@hostA:/path/to/repositoryS
这条命令会将主机A上的git仓库S克隆到你刚刚执行命令的目录下,这时候,克隆仓库和源仓库S中的文件是一致的 - 而当源仓库S中的文件发生改动,你继续读取克隆仓库中的配置文件时无疑只能读到过时的信息,要想和S保持一致,只需要在克隆仓库目录下执行
git pull
,不过每次执行都需要输入A的密码,比较麻烦。
通过配置主机B免密登录主机A,可以避免在克隆仓库目录下执行git pull
需要输入密码的情况,具体步骤是这样的:
- 首先,在B的~/.ssh目录下找到
id_rsa.pub
文件,复制文件中内容 - 然后,在A的~/.ssh目录下找到
authorized_keys
文件,将复制的内容添加到authorized_keys
文件中 - 如此一来,就可以在克隆仓库目录下免密执行
git pull
了
如果B的~/.ssh目录下没有id_rsa.pub
文件,可以尝试使用命令ssh-keygen -t rsa
自行生成密钥对
参考资料:
- git - 简明指南 https://www.runoob.com/manual/git-guide/