远程仓库
1 远程仓库介绍
Git 远程仓库是指托管在远程服务器上的 Git 仓库,也称为代码托管平台开发者可以通过网络与其进行信息同步。一般来说,一个 Git 项目会有一个远程仓库,开发者通过将本地仓库的更新推送至远程仓库,与其他协作者实现代码共享与同步。
1.1 常见的远程仓库
1) GitHub,网址:https://github.com,是全球最大的代码托管平台,是一个面向开源及私有软件项目的托管平台,因为只支持 Git 作为唯一的版本库格式进行托管。
2)Gitee,中文名码云,网址:https://gitee.com,是 OSChina 推出的代码托管平台,面向中国开发者提供免费的Git仓库以及SVN仓库托管服务。它类似于 GitHub,目前已经成为中国最大的开源社区。
3) Coding,网址:https://coding.net,是腾讯旗下的 Git 远程仓库服务。
1.2 自己搭建远程仓库
GitLab,网址:https://about.gitlab.com/, 是一款开源的代码托管平台程序,用于仓库管理系统的自托管解决方案,它类似于 GitHub,但可以自己搭建服务器来托管代码,不依赖任何第三方服务。
2 本地登录远程仓库
远程仓库的地址有 https 和 ssh 两种形式,对应的是不同的登录验证方式。
2.1 HTTPS 方式
当需要连接远程仓库的时候会自动弹出登录窗口,填写用户名密码,系统默认会记住账号密码,下次使用无需登录。
用户名密码会保存到系统凭证中,从控制面板中可以找到,如果需要登录其他账号,需要在凭证中将原来的删除。
2.2 SSH 方式
第一步:创建非对称加密对
ssh-keygen -t rsa -C "xxx@xxx.com"
文件默认存储在家目录(c:/用户/用户名/.ssh)的 .ssh 文件夹中。
- id_rsa 私钥
- id_rsa.pub 公钥
第二步 将公钥(.pub)文件内容配置到github或者git的账号中
GitHub:右上角头像-> settings -> SSH and GPG keys -> new SSH Key
GItee:右上角头像-> 设置-> SSH公钥 -> 添加公钥
第三步 克隆远程仓库到本地
克隆代码时,选择 ssh 模式进行克隆。
git@gitee.com:fmuncle/huoxing.git
克隆代码时的提醒,这里需要输入 yes
3 本地仓库与远程仓库第一次同步
3.1 场景一:本地有仓库
在 GitHub 或 Gitee 上创建远程仓库
获取到远程仓库的地址
本地运行命令, 给仓库地址取别名为 origin
git remote add origin 远程仓库地址
# 仓库地址别名的其他操作 git remote remove 名字; # 删除 git remote rename 名字 新名字; # 改名 git remove get-url 名字; # 查看名字对应的仓库地址 git remove set-url 名字 地址; # 修改名字对应的仓库地址
本地工作区的修改提交到本地仓库。
拉取远程仓库的更新到本地
git pull
把本地仓库推送到远程仓库 ,
-u
的意思是记录远程仓库的地址git push -u origin master
以后如果向远程仓库推送
git push
3.2 场景二:本地没有仓库
获取远程仓库地址
克隆仓库
git clone https://github.com/unclealan/test2.git
克隆代码之后, 本地仓库会默认有一个远程地址的配置, 名字为 origin
本地添加并提交
git add -A git commit -m 'message'
从远程仓库拉取更新
git pull
推送本地仓库到远程
git push
4 利用远程仓库多人协作
4.1 工作流程
项目开始第一天:
获取到仓库地址,克隆到本地
进行开发修改代码,添加、提交。
下班之前要推送到远程仓库
先确定所有的修改的都提交了(commit)
推送之前先拉取
git pull
正式推送
git push
以后每一天:
早上上班,拉取远程仓库
git pull
进行开发修改代码,添加、提交。
下班之前要推送到远程仓库
先确定所有的修改的都提交了(commit)
推送之前先拉取
git pull
正式推送
git push
4.2 冲突解决
与合并分支类似,多个成员如果修改了同一个文件,就会出现冲突; 本地拉取文件的时候,如果远程仓库中与本地的提交有冲突,解决:修改再次提交, 再推送