git 多分支,git远程仓库,ssh方式链接远程仓库,协同开发,冲突解决
目录
一、git 多分支
# 分支操作
0 查看分支
git branch # 本地
git branch -a # 本地和远程
1 创建分支
git branch dev
3 切换分支
git checkout 分支名字
4 删除分支
git branch -d 分支名
5 合并分支 操作步骤
git branch dev
git checkout dev
新增一个文件 xx.txt,加入一行
git add .
git commit -m 'dev分支增加了xx.txt'
修改lqz.txt 加入一样
git add .
git commit -m 'lqz.txt 加入内容'
# 切回到主分支(增的东西,都没有)
# 新增的文件,看不到
# 把dev合并到master上,要在master身上
git merge dev
# 主分支和dev分支就一样了
二、git远程仓库
第一步
第二步
第三步
第四步
# 我们要协同开发,代码要提交到远程仓库,可以使用gitee,github,gitlab,本文以gitee为例
#1 以gitee为例,注册账号
#2 在账号中,新建一个仓库 [本地仓库,推送到远程仓库]
#3 如图所示 ----》[如果创建远程仓库不是空的,就会有问题]
#4 本地仓库,推到远端
-本地已经有了
# git remote 查看有哪些远程仓库
# git remote remove origin # 删除本地跟远程仓库的链接关系
cd lqz
# git remote add 远程仓库名字 远程仓库地址
git remote add origin https://gitee.com/liuqingzheng/lqz.git
git push origin master # 把本地仓库中所有的内容,提交到远程仓库
# 弹出框,要求输入用户名和密码(之前输入过,保存了)
# 本地仓库代码就会被推送到远端了
修改用户名username
三、ssh方式链接远程仓库
# 刚刚的远程仓库,推送,走的都是https的协议,需要用户名密码
# 加密方式
-对称:AES,DES
-非对称:
# 公司里,常用ssh协议方式推送代码
-git@gitee.com:liuqingzheng/lqz.git
-它不需要用户名密码,而需要:公钥私钥【非对称加密】
-在本地机器生成公钥[可以给任何人]和私钥[自己留着]
具体操作
-1 先删除原来使用https链接的remote
-2 增加一个跟远程仓库的链接 origin ---》是ssh协议的
git remote add origin git@gitee.com:liuqingzheng/lqz.git
-3 本地机器,生成公钥私钥[使用命令生成]
https://help.gitee.com/base/account/SSH公钥设置
-打开cmd 执行 ,一路回车
ssh-keygen -t ed25519 -C "306334678@qq.com"
- 用户家路径,生成 .ssh文件夹,里面有公钥和私钥
- 4 把公钥配置在gitee上【打开公钥】--》可以配多个
-https://gitee.com/profile/sshkeys
-5 以后放心大胆的
git push origin master # 提交代码即可
# 你在公司中
-1 用gitlab,可能你自己注册账号,也可能别人直接给你注册号了,你直接登录,修改密码即可
-2 登录gitlab能看到代码仓库,仓库的所有者[你们领导],会把你加成这个仓库的【开发者】
-3 基于这个仓库继续开发,提交代码
-4 ssh方案:本地生成公钥私钥【本地有了,就不用重新生成了】
-5 把公钥,配置在自己的gitlab账号里面
四、协同开发
# 仓库管理员[领导],创建仓库,邀请成员,成为开发者
# 被邀请的人,登录自己账号,就能看到仓库了
多人协同开发
# 1 从远端克隆代码
# 2 进到文件夹中,改东西
# 3 git add .
# 4 git commit -m '改了一行'
# 5 git pull origin master # 拉去仓库中最新的代码 否则提交不了
# 6 git push origin master
# 多人操作统一仓库,就是协同开发,但是咱们这个操作,没有遇到冲突
五、冲突解决
# 出现冲突的原因
-1 多人在同一分支,修改了同一个地方的代码,出现的冲突
-2 分支合并时出冲突
1 多人统一分支开发,修改了同样的代码
-某人修改了1.txt的第四行,提交了
-我操作:
-修改了1.txt第四行
-git add .
-git commit -m ' 注释'
-git pull origin master
-出冲突了
<<<<<<< HEAD
我的代码
=======
别人的代码
>>>>>>> af38b6ae4d9e126bd88b9b039e475e8ddbc23510
-处理冲突
-选择要保留的代码,要么删自己的,要么删别人的,要么都留着
-重复操作
git add .
git commot -m '解决冲突'
git push origin master
# 大原则,多人同一分支开发,如果尽量避免冲突,要不停的拉去代码
分支合并出冲突
# 新建dev分支,切换,增加代码
git branch dev
git checkout dev
在1.txt最后一行增加 lqz nb1
git add
git commit -m '注释'
# 切换回主分支操作
git checkout master
在1.txt最后一行增加 lqz nb2
git add
git commit -m '注释'
# 合并分支
-出冲突了
<<<<<<< master
我的代码
=======
别人的代码
>>>>>>> dev
# 解决冲突,提交
git add
git cmommit