基本的路由器搭建
服务器初始化
在服务器上建立一个文件夹,一般喜欢把文件夹名取为xxx.git
进入该文件夹 执行 以下命令建立一个原始git仓库。
git init –bare –share
这里假设git仓库是/home/test.git
客户机操作
进入工程目录,用git init 正常的初始化git仓库。然后添加远程服务器
git remote add server tofu@192.168.1.254:/home/test.git
然后使用正常的git服务器操作push相应的分支即可,例如用以下命令把当前主分支push到服务器上。
git push server master
镜像服务器搭建
这里镜像服务器是指的从别的git服务器上把仓库复制过来,自己再作为服务器给客户机使用。
复制远程仓库
复制远程仓库到自己服务器可以用两种方式,一种是bare复制,即使用以下命令:
git clone –bare https://github.com/torvalds/linux.git
该方式可以获取一个原始的git仓库可用于给客户机访问,命令会自动建立一个叫linux.git的文件夹,放仓库的所有东西。但这种复制只能复制一次,当Github有更新时,无法通过git fetch获得更新。
更好的办法是使用以下命令:
git clone –mirror https://github.com/torvalds/linux.git
该命令比–bare更好用,可以代替–bare使用。
这样获取的git仓库,Github更新后可以用以下命令进行更新:
git fetch -p
通过服务器推送git仓库到目标服务器
首先,在目标服务器192.168.1.254上建立文件夹/home/test.git并使能ssh用户的读写权限。进入该文件夹,执行命令初始化仓库:
git init –bare –share
在服务器,进入需要推送的仓库目录,执行以下命令给git添加目标服务器:
git remote add obj_server tofu@192.168.1.254:/home/test.git
同时通过以下命令把当前仓库推送到目标仓库:
git push obj_server –mirror
这样,目标服务器的git上就存放了推送的仓库,可以供客户机使用。
总结
git其实是给予SSH的文件传输的,即只要SSH拥有的传文件方式,git即能以该方式工作。
同时可以通过添加SSH key的方式免去输密码的麻烦。
其中关键的参数有两个
仓库的初始化用 –bare 和 –share参数。
仓库的复制用–mirror 参数