一、常用的托管服务
1.gitHub
一个面向开源及私有软件项目的托管平台,只支持Git作为唯一的版本库格式进行托管。
2.码云(gitee)
是国内的一个代码托管平台,服务器在国内,所有相较于gitHub使用起来更加方便一点。
3.gitLab
是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务,一般用于在企业、学校等内部网络搭建git私服
二、常用操作(gitee示例)
1. 创建远程仓库
(1)注册登录
(2)“+”创建仓库
(3)填写仓库名、介绍、创建
2.配置SSH公钥
2.1生成SSH公钥
在gitbash中输入ssh-keygen -t rsa指令,一路回车即可。(如果公钥已存在,会自动覆盖)
2.2 Gitee设置账户公钥
(1)查看已生成公钥
cat ~/.ssh/id_rsa.pub
(2)gitee设置中添加SSH公钥
(3)验证是否配置成功
在gitbash中输入ssh -T git@gitee.com
3.操作远端仓库
3.1 添加远程仓库
(1)在gitbash中通过以下指令添加远程仓库
git remote add 远端名称 运程仓库的SSH链接
远端名称:默认是origin,取决于远端服务器的设置
(2)git remote查看远程仓库
3.2 推送到远程仓库
git push [-f] [--set-upstream] [远程仓库名] [本地分支名][:远程分支名]
-f:表示强制覆盖;
--set-upstream:推送到远端的同时,建立起和远端分支的关联关系;
若本地分支名与远端分支名相同:可只写本地分支名;
若当前分支已经和远端分支关联:可省略远端名和分支名
3.3 查看本地分支与远端分支的关联关系
git branch -vv
3.4 从远端仓库克隆
如果远端仓库已存在,可以直接将远端仓库克隆到本地。
git clone [仓库路径] [本地目录名]
3.5 从远端仓库抓取和拉取
远程分支和本地分支一样,我们可以进行merge操作,只是需要先把远程仓库中的更新下载到本地,在进行操作:
(1)抓取:git fetch [remote name] [branch name]
将远端仓库的更新全部抓取到本地,不会进行合并;
若不指定远端名和分支名,则抓取所有分支;
(2)拉取:git pull [remote name] [branch name]
将远端仓库的更新拉取到本地,并自动进行合并;
若不指定远端名和分支名,则抓取所有并更新当前分支;
3.6 解决合并冲突
如果多个用户同时修改了同一文件的同一行内容,此时合并就会发生冲突。
例如:A用户在本地修改了代码后提交到了远程仓库,此时B在本地修改了同一位置的内容,添加到本地仓库后也需要推送到远程仓库,因为B晚于A,此时远程仓库已经发生了更新,所以需要先拉取远程仓库的更新,经过合并后,再提交到远程仓库。
B在拉取后进行合并时,就会发生合并冲突。
解决方法:远程分支也是分支,所以解决方法和本地分支合并冲突解决方法相同,在push前,先pull,在本地将冲突解决后再push到远程仓库。