git 多分支,git远程仓库,ssh方式连接远程仓库, 协同开发,冲突解决, 线上分支合并,远程仓库回滚

git 多分支


1.创建分支
>: git branch 分支名

2.查看分支
>: git branch

3.切换分支
>: git checkout 分支名

4.创建并切换到分支
>: git checkout -b 分支名

5.删除分支
>: git branch -d 分支名

6.查看远程分支
>: git branch -a

7.合并分支
>: git merge 分支名
把dev分支合并到master分支:切换到master分支,执行合并dev分支的命令

"""
1)多个开发者都是在一个分支上进行开发,不出意外,该分支一定叫dev(协同开发)
2)如果出现一个特殊任务(敏感任务),与正常业务关系不紧密,甚至可能大的影响正常的dev分支开发,可以依赖dev开一个子分支,进行开发,开发完毕后合并到dev分支,再删除该分支即可
3)所有的开发任务都可以在dev分支上进行(除非公司硬性要求不能直接在dev分支开发,只能在dev子分支开发,测试通过后才能合并给dev)
"""

image

image

git远程仓库

把本地的版本提交到仓库上去
	通过gitee,github,gitlab
    gitlab搭建的过程:https://zhuanlan.zhihu.com/p/413217715

本地Git开发

		1 在luffy_api 敲git init
        2 设置忽略文件(.gitignore)
        3 git add .
        4 git commit -m '第一次提交'
        ------提交到了本地版本库-------被版本管理了

image

远程开发

1)你作为项目仓库初始化人员:
	线上要创建空仓库 => 本地初始化好仓库 => 建立remote链接(remote add) => 提交本地仓库到远程(push)
	
2)你作为项目后期开发人员:
	远程项目仓库已经创建成功 => 复制远程仓库到本地(clone) => 进入仓库就可以进行接下来的开发

image

1 远程要创建仓库:gitee上创建仓库,右上角 +
2 填一些信息,保证仓库是空的
    本地:
    	1 安装远端提示的步骤操作
        2 设置用户和邮箱
        3 咱们是已有仓库,按照以下操作即可
        cd luffy_api
        # 添加一个远程仓库地址名字叫origin,地址是xxx
		git remote add origin https://gitee.com/liuqingzheng/luffy_api.git
        # 把本地的版本库推送到远程仓库
        # 把本地当前所在分支,推送到 origin对应的远程的master上
		git push origin master
    	# 需要输入用户名密码,输入一次,以后就不用输入了(本地保存了:凭据管理)

image

ssh方式连接远程仓库

官网:https://gitee.com/help/articles/4181#article-header0

本机命令,生成公钥:ssh-keygen -t rsa -C "*@*.com"
	邮箱可以任意填写
本机命令,查看公钥:cat ~/.ssh/id_rsa.pub

码云线上添加公钥:项目仓库 => 管理 => 部署公钥管理 => 添加公钥 => 添加个人公钥

image

image

之前origin对应的地址是 https的,现在要使用ssh提交代码,需要把它删除,再增加成ssh的协议
        # 先删除原先的ssh
	    git remote remove origin
        # 添加一个远程仓库地址名字叫origin,地址是xxx
        git remote add origin git@gitee.com:liuqingzheng/luffy_api.git
        git remote add origin git@gitee.com:mei_ni_wang/luffy.git
            
        # 把本地当前所在分支,推送到 origin对应的远程的master上    
        git push origin master

协同开发

如何成为其他码云项目的开发者

1)生成自己电脑的公钥,配置到自己的码云个人公钥中
2)把自己的码云用户名提供给别人,别人添加你成为项目开发者
3)自己确认添加,成为开发者,克隆开发项目,进行开发

我作为开发者,本地没有代码,该怎么做操作代码

	1 把代码从远程仓库 clone 下来
    	git clone git@gitee.com:liuqingzheng/luffy_api.git
	2 使用pycharm打开,配置好解释器,安装依赖
    3 开发代码,开发完
    	git add 
        # 设置用户名和邮箱
        git config user.name lqz
        git config user.email 3@qq.com
        git commit -m 
        git push origin master

如何成为公司自建git服务器的开发者

1)生成自己电脑的公钥(公钥生成一次就可以了),把它提交给项目管理者
2)项目管理者添加你公钥,加入开发者,提供给你项目克隆地址
3)克隆开发项目,进行开发

协同开发流程

1)作为开发者,第一次同步项目(前面已经是项目开发者了)
    >: git clone 项目地址

2)保证自己本地有dev分支,且与远程仓库版本同步(没有就自己新建)

3)本地开发的代码,必须add、commit到本地版本库后,才和远程仓库进行交互

4)交互顺序:必须 先拉(pull)后提(push)

5)必须切换到要交互的分支,在与远程同名的分支进行交互,如本地dev与远程dev交互
    >: git checkout dev
    >: git add .
    >: git commit -m '本次提交的信息提示'
    >: git pull origin dev
    >: git push origin dev

冲突解决


1)在远程仓库和本地仓库版本不一致时,拉取远程仓库版本到本地时,两个版本进入融合,可能会出现版本冲突

2)定位冲突文件冲突代码,线下沟通冲突代码,整合代码解决冲突

3)将解决冲突后的代码重新提交到本地版本库

4)再拉去远程仓库,直到没有冲突,提交本地版本库到远程


<<<<<<< HEAD  # 冲突的开始
# 自己的代码
=======  # 分割线
# 别人的代码
>>>>>>> b63c408abd05b87fc492d40523240561999dba50  # 冲突的结束(版本)



1)删除冲突相关标识:冲突的开始、分割线、冲突的结束(版本)
2)线下沟通,根据实际需求完成代码整合
3)测试整合后的代码


出现冲突的前提:
1)不同开发者同时操作了同一文件
2)并且在相同行写了代码
强调:有业务交际时,版本合并不一定会出现冲突相关的标识,但是可能会带着代码运行崩溃,所有理论上每一次版本合并,都要测试合并后的所有功能(及其之少的情况)

线上分支合并

# 线下分支合并
	git merge dev
       
# 线上 分支合并
	- gitee上,新建一个分支
    -本地同步远程dev分支
    	git pull origin dev  # 拉下来了,还看不到,只有切过去,才看的导
        git checkout dev
    -在dev上开发开发
    	随便加代码
        git add 
        git commit 
        # 提交到本地的dev了
        
    - 推到远端 dev
    	git push origin dev
    -master中没有代码,dev中有提交的,现在要线上分支合并
    -把远程的dev合并进远程的master
    - 提交pr    提交rr
    -在网站上,申请提交pull request
    -领导审核,测试,通过后,点击合并
    -线上dev就合并进线上的master了

image

远程仓库回滚

用dev分支举例
1)本地切换到远程要回滚的分支对应的本地分支
git checkout dev

2)回滚本地分支
git reset --hard 版本号

3)本地版本强行提交给服务器
git push origin dev -f