远程仓库
如果说本地仓库已经足够个人进行版本控制了,那么远程仓库则使多人合作开发成为可能.
如果你只是打算自己使用git
,你的工作内容不需要发布给其他人看,那就用不到远程仓库的概念.
git
是分布式版本控制系统,分布式意味着同一个git 仓库
可以部署在不同的机器上,正如"鸡生蛋蛋生鸡"问题一样,不论如何,先要有一个原始仓库,然后才能分布到其他机器上去.
充当原始仓库的机器要有一个特点那就是24h 开机且大家都能访问到,这个概念类似于"中央服务器".这样一来大家都可以从"中央服务器"下载最新代码,克隆到本地,本地发生更改后再推送给"中央服务器".如此一来,大家交流方便很多,轻松实现文件内容的共享.
这种"中央服务器"比较有名的是国外的网站 github,当然国内也有不少类似服务.像这种"中央服务器"也可以自己搭建,现阶段搭建的话简直就是"杀鸡焉用牛刀"!
背景
关于如何注册配置相关请参考 github 教程
为了和上述教程保持一致,项目名git-demo
,先看一下当前工作区状态:
# 查看文件列表
$ ls
LICENSE README.md test.txt
# 查看文件内容
$ cat test.txt
add test.txt
现在测试一下本地更改能否推送到远程仓库,先在本地文件 test.txt
随便写点东西,然后添加(git add
),提交(git commit
),最后推送到远程仓库(git push origin master
).
# 写入新的内容并提交到本地仓库
$ echo "see https://snowdreams1006.github.io/git/usage/remote-repository.html" >> test.txt
$ git add test.txt
$ git commit -m "see https://snowdreams1006.github.io/git/usage/remote-repository.html"
[master b3d8193] see https://snowdreams1006.github.io/git/usage/remote-repository.html
1 file changed, 1 insertion(+)
# 推送到远程仓库
$ git push origin master
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 359 bytes | 359.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
To github.com:snowdreams1006/git-demo.git
8e62564..b3d8193 master -> master
$
命令行没有报错证明我们已经成功推送到 github
,现在登录 github
看一下有没有刚才我们提交的新内容.
现在本地版本库和远程版本库已经能够正常建立关联了,此刻起将不再是独自一人在战斗!
小结
- 创建已有本地仓库和远程仓库的关联
# 添加远程仓库关联
git remote add origin git@github.com:username/repos.git
# 首次推送 master 分支的全部内容
git push -u origin master
# 后续推送 master 分支的最新更改
git push origin master
- 从已有远程仓库克隆到本地仓库
# 克隆远程仓库到本地仓库
git clone git@github.com:username/repos.git
# 推送 master 分支的最新更改
git push origin master