常用的远程仓库有GitHbub、码云、Gitlab
- GitHub(https://github.com/)是 一个面向开源及私有软件项目的托管平台,但其服务器在国外,故而访问速度回非常缓慢。
- 码云(https://gitee.com/)是国内一个代码托管平台,由于服务器在国内,所以相比于GitHub平台速度会更快
- Gitlab(https://about.gitlab.com/)是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务,一般用于企业、学校内部网络搭建git私服。
注册码云、创建仓库
1、配置公钥
ssh-keygen -t rsa
不断回车
若公钥已存在,则会自动覆盖
2、获取公钥
cat ~/,ssh/id_rsa.pub
3、验证是否配置成功
ssh -T git@gitee.com
操作远程仓库
1、远程仓库的添加
git remote add <远端名称><仓库路径>
- 远端名称默认为origin
- 仓库路径,从远端服务器获取此url
- eg:git remote add origin git@gitee.com:cdsz_zuhsh_hsjd/asas.git
2、查看远程仓库
git remote
3、把本地仓库推送到远程仓库
git push [-f] [--set -upstream] [远端名称] [本地分支名]:[远端分支名]
- 如果远程分支名和本地分支名相同,则只写本地分支即可:git push origin master
- --set -upstream:推送到远端的同时建立起和远端分支的关联关系:git push --set -upstream origin master
- 如果当前分支已经和远端分支关联,则可以省略分支名和远端名:git push 将master分支推送到已关联的远端分支
- -f表示强制覆盖(企业中这个功能一般会被禁用)
4、查看远程仓库
git remote
5、本地分支于远程分支的关联关系
git branch -vv
从远程仓库克隆
git clone<仓库路径名>[本地目录]
从远程仓库抓取和拉取
抓取
git fetch [remote name] [branch name]
- 抓取指令就是将仓库里的更新内容都抓取到本地,但是不会进行合并
- 如果不指定远端名称和分支名,则会抓取所有分支
拉取
git pull [remote name] [branch name]
- 拉取指令就是将远端仓库的修改拉到本地并自动进行合并,等同于fetch+merge
- 如果不指定远端名称和分支名,则会抓取所有分支
解决合并冲突
在一段时间内,A、B用户修改了同一个文件,且修改了同一行位置的代码,此时才会发生合并冲突。
A用户在本地修改代码后优先推送到远程仓库,此时B用户在本地修改代码,提交到本地仓库后,也需要推送到远程仓库,此时B用户晚于A用户,故需要先拉取远程仓库的提交,经过合并后才能推送到远端分支。在B用户拉取代码时,由于A、B用户在同一段时间修改了同一个文件的相同位置代码,故而会发生合并冲突。
远程分支也是分支,所以合并时冲突的解决方式也和解决本地分支冲突相同。(找到源文件修改,然后gir add .->git commit)
可以把idea集成GitBash作为Terminal