git分支管理,远程仓库,协同开发,线上分支合并

git分支管理

一般情况 公司理git都有三条分支,主分支,开发分支,bug分支。

可以确保主分支都是可以供用户查看的版本。

开发人员在开发分支上 进行开发,开发完成后合并到主分支。

1,分支查看

git branch

image

创建分支

git branch 分支名
git branch dev

image

切换分支

git checkout dev # *号会到dev上

分支删除

git branch -d dev

合并分支

注意我们是按照 主分支的某个版本 的基础上继续 开发,在我们没有合并之前主分支看不见我们 开发分支上的代码。

切换分支后执行合并命令

"需要搞清楚把哪个分支合到哪个分支里"
我想把dev合并到master分支
就要先到master分支里
执行下面的命令
git merge dev  

分支合并可能会出冲突,如果在我们合并的时候有别人在主分支上合并了而且代码与我们在一行上就会出冲突。所以需要经常从主分支上拉数据下来。

在公司最常见的有两种分支结构

	-master分支,dev分支,bug分支 ,所有人在dev分支开发,开发完成合并到主分支
   -master分支,dev分支,bug分支 ,个人分支,个人在个人分支上开发,开发完成合并到dev分支

image

git 远程仓库

我们之前的操作都在本地,在公司里一般都是提交到远程仓库.

gitlab搭建过程

https://zhuanlan.zhihu.com/p/413217715

我们这里拿gitee示例

注意

如果我们如果之前填写好的过滤已经提交到版本库了,漏了要过滤的文件但是已经在版本库了,在写上也不会过滤。

只有把他删了后提交到版本库里,这样版本库里就没有了,然后新增加的就不会被管理了。

比较麻烦,所以一开始就要写好过滤。

提交到远程库里之前需要先在本地库提交了

本地操作

1.在需要被管理的文件里右键打开git
		输入		- git init
2. 设置忽略文件
	   	.gitignore
3. 添加到暂存区	
		- git add .
4. 提交到版本库
		- git commit -m 'v1版本的提交'

远程操作

在gitee上创建仓库

登录账号后右上角+号新建仓库,跳转页面

image

image

可以用pycharm打开该项目在里面Terminal输入,也可以到文件目录打开git,咱们是已有仓库

Git 全局设置:

git config --global user.name "李阿鸡"
git config --global user.email "392879076@qq.com"

已有仓库

cd luffy_api
"下面的origin是仓库名后面是地址"
git remote add origin https://gitee.com/LiAJibb/luffy_api.git  # 新增一个远程仓库地址,可以添加多个  
git push -u origin "master"  # 把本地库推送到 远程库的master上
git push origin master # 也可以推
"需要输入gitee密码,只用输入一次,后面回保存在windos凭据管理里"

查看仓库

git remote

删除仓库

慎用

git remote remove 仓库名/origin

SSH公钥密码链接远程仓库

私钥保存在本地,公钥配置在gitee上,以后提交的时候就不需要在输入密码

步骤

1.生成公钥私钥

在gitee个人设置里找到ssh公钥里面有查看怎么生成公钥

文档

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

命令窗口执行命令

ssh-keygen -t ed25519 -C "392879076@qq.com"
一路回车

image

会生成两个文件一个公钥(pub结尾的)一个私钥

公钥配置在gitee上

image

ssh地址在gitee仓库里找看下图

image

把远程仓库的地址修改成ssh地址

先把之前的地址删了
git remote remove origin
添加ssh地址
git remote add origin git@gitee.com:LiAJibb/luffy_api.git

协同开发

仓库管理员把员工设置为该仓库的开发者,设置完成后员工账号也能看到该项目了。

从远程仓库clone代码

前提:必须是该仓库的管理员或员工

新建一个文件夹用于存放项目,在文件夹内右键打开git 输入下面代码

git clone git@gitee.com:LiAJibb/luffy_api.git
注意克隆之前需要现在gitee设置公钥不然无法识别身份

使用pycharm 打开该项目 配置好python解释器,下载依赖

然后就可以开发代码啦

开发完之后提交的时候需要把用户名邮箱改成自己的

git add 
# 设置用户名和邮箱
git config user.name 用户名
git config user.email 邮箱
        
git commit
git push origin master

冲突测试

同事:
	git pull origin master  # 拉取代码
   在manage里第五行打了一个print
   git add .
   git commit -m 
   git push origin master # 先提交了代码

我:
   在manage里第五行打了一个print
   git add .
   git commit -m 
   git push origin master # 我提交代码我报错了
   git pull origin master # 拉取代码下来

image

需要解决这个问题,如果你们写的功能一样,你觉得你写的好那么需要和同事说把他的删了(不推荐,容易造成矛盾),或者把你自己的删了。或者换一行把名字改了以后你用你自己的。

不一样就都留下来

修改后再提交就成功了,同样的问题在分支合并的时候也会起冲突。

如何避免经常出现冲突

经常拉取代码,保持代码是最新的版本

线上分支合并

有两种方法

1.拉取线上版本在线下创建好dev分支后

​ git push origin dev 把dev推到线上

git branch dev    # 创建分支
git push origin dev	
  1. 线上直接创建分支

    ​ 分支管理创建分支,线上会自动复制一份代码给新分支

    ​ 线下进入项目切换进该分支,直接拉取该分支的代码提交到本地的dev

1. git pull origin dev  # 把线上的dev代码拉下来
2. git checkout dev   # 切换到dev分支
3.随意改代码,开发后上传即可
			git add .
    		git commit -m '注释'
          git push origin dev # 推到线上

3.gitee上合并分支

进入项目仓库

image

image

创建新分支以后会提交个请求,由部门老大审查通过与测试人员测试通过后才可以正式合并

image

远程仓库回滚(慎用)

本地版本回退,进入分支

git reflog     # 查看版本 拷贝版本号
git reset --head 版本号

强行推到远端
git push origin master -f
posted @ 2023-03-02 19:52  李阿鸡  阅读(92)  评论(0编辑  收藏  举报
Title