1. 本地协议:共享文件系统
2. HTTP协议:类似SSH(Secure Shell)安全外壳协议,应用层,用于远程登录
3. SSH协议:易架设,通用,安全高效,公司内部可用
4. Git协议:任何人都(不)可以克隆,最难架设,最快,可与SSH、HTTPS公用
创建裸仓库
1) 创建:
git init --bare <裸仓库名>.git
2) 通过克隆已有仓库来创建一个新的裸仓库:
git clone --bare <已有仓库> <裸仓库名>.git
等同:
cp -Rf <已有仓库>/.git <裸仓库名>.git
把裸仓库放到服务器上:
scp -r <已有仓库名>.git li.han@10.86.17.250:/gpfs/home/li.han/
远程仓库权限
对 /gpfs/home/li.han/目录拥有可读权限的使用者就可以克隆该仓库:
git clone li.han@10.86.17.250:/han/project.git
对 /gpfs/home/li.han/ 目录拥有可写权限的使用者就拥有推送权限。
在项目目录中运行下面命令,则该仓库目录的组权限为可写
git init --bare --shared
秘钥
默认情况下,用户的 SSH 密钥存储在其 ~/.ssh目录下,以 id_dsa或 id_rsa命名,其中一个带有 .pub 扩展名,.pub 文件是公钥,另一个则是私钥。
创建密钥:
ssh-keygen
查看仓库
查看已有的仓库:
git remote
显示远程仓库与其对应的 URL
git remote -v
查看远程仓库:
git remote show <远程仓库>
添加Git远程仓库,同时指定一个可以轻松引用的简写:
git remote add <shortname> <url>
更改远程仓库的简写名:
git remote rename <old_name> <new_name>
移除远程仓库:
git remote rm <远程仓库>