传输协议
常用协议 | 语法格式 | 说明 |
---|---|---|
本地协议(1) | /path/to/repo.git | 哑协议 |
本地协议(2) | file://path/to/repo.git | 智能协议 |
http/https 协议 | http://git-server.com:port/path/to/repo.git https://git-server.com:port/path/to/repo.git | 平时接触到的都是智能协议 |
ssh 协议 | user@git-server.com:path/to/repo.git | 工作中最常用的智能协议 |
哑协议与智能协议的区别
- 直观区别:哑协议传输进度不可见;智能协议传输进度可见。
- 传输速度:智能协议比哑协议传输速度快。
备份
本地备份的步骤如下:
- 进入要备份的仓库目录,也就是
.git
目录所在的那个目录,然后输入pwd
查看当前所在路径。
- 进入要备份的目标路径,也就是说,我们想把当前仓库备份到那个路径下,我们就进入哪个路径。然后输入
git clone --bare [file://]仓库源路径/.git 目标备份仓库名.git
,仓库源路径就是我们在上一步中得到的路径,目标备份仓库名是备份后的仓库名,可以随便取。但是建议与源仓库名保持一致,中括号中的内容可加可不加,加上就是智能协议,不加就是哑协议。
例如下面两张图,第一张图中是使用哑协议来备份,第二张图中是使用智能协议来备份。可以看到使用哑协议备份时没有进度提示,而使用智能协议时有进度提示。
同步
仓库备份之后,我们后续对于源仓库修改的内容也要及时地同步到备份仓库那里去,要想同步,首先要把源仓库与备份仓库关联起来,我们在源仓库的根目录使用以下命令:
git remote add 远程仓库别名 URL
不管是备份到本地还是备份到云端,在 Git 看来都是远程仓库。远程仓库别名也是我们自己起的,URL 就是仓库的 URL。例如我们将刚才备份的仓库与源仓库关联起来:
git remote add origin file:///f/repositories/algo_zhineng.git
注意:远程仓库用什么协议创建的,我们在进行关联的时候就要指定相应的协议。
这样,关联之后,如果源仓库有什么改动,就可以用git push
同步到备份仓库了。第一次 push 好像需要加 --set-upstream
选项。