多分支Git的操作简介,冲突合并,多平台对应

这篇具有很好参考价值的文章主要介绍了多分支Git的操作简介,冲突合并,多平台对应。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

多分支Git的操作简介

在使用git管理代码时,在多人开发,或者不同功能开发以及环境测试时,需要保持master代码的稳定性,因此往往需要创建多分支的Git仓库,这里记录一些多分支仓库的操作指令

1. 分支操作

1.1 创建分支
git branch 分支名

上述输入想要创建的分支名字,即可在本地创建分支,如

git branch develop

即可以在本地创建名为develop的分支

1.2 查看分支
git branch     #查看本地分支
git branch -a    #查看所有分支,本地分支和远程分支

git怎么多分支,git,linux,ubuntu

1.3 切换分支
git checkout 分支名

查看分支对应关系和当前分支

git status

git怎么多分支,git,linux,ubuntu
git怎么多分支,git,linux,ubuntu

2. Push与Pull指令

正常情况下,只要按照上一步所示的,当前本地分支与远程对应分支一致的时候,可以直接采用pull或者push
但是有些时候,老版本的git无法自动连接本地分支和远程分支,需要采用一下的操作方式:

2.1 操作方式一

采用带有指令的push和pull

git pull origin master:master
#第一个master为远程的master分支,第二个为本地,总体为from xxx to xxx的语法格式

↑该操作会将远程的master分支,同步到本地master分支。

git push origin master:master
#第一个master为本地分支,第二个为远程分支,origin为远程的主机名

↑该操作会将本地master分支推送到远程master分支
上述操作可以简单记为:

git push/pull <远程主机名> <from xxxbranch>:<destiny branch>

注意,git push或者git pull 所执行的都是获取比较(fetch)和合并(merge)操作,即本地和远程虽然都是master分支,但是本地的和远程仓库的可以看成两个不同的分支,通过git branch -a命令也可以看出来,本地和远程分支都会列举出来,因此每次的push或者pull都是本地推送到远程(push)或者远程推送到本地(pull)并合并的过程。

2.2 操作方式二

将本地分支链接的远程分支,如果git status中出现的不想上述的本地和远程已经链接好了,这个时候push和pull会出问题,采用上述的方式一可以暂时解决,但是也可以链接一下采用

git branch --set-upstream-to=/origin/develop develop 

通过该指令可以看出,将本地develop(上述命令的最后一个参数),和远程origin/develop建立起来上传和下发关联,之后操作git status就可以看到已经关联,而且采用push和pull可以直接不带参数,因为此时默认参数就是我们想要推送的位置。

3. 合并分支以及冲突处理

3.1 分支合并

develop分支合并到master分支
1.首先切换到分支;

git checkout develop

2.使用git pull 把分支代码pull下来;

git pull

3.切换到主分支;

git checkout master

4.把分支的代码merge到主分支;

git merge develop

5.git push推上去ok完成,现在 你自己分支的代码就合并到主分支上了。

git push

同样,主分支的文件也可以合并的分支上。

master分支代码合并到自己的分支
master分支的代码领先自己的分支,git 如何把master分支代码合并到自己的分支
1.首先切换到主分支

git checkout master

2.使用git pull 把领先的主分支代码pull下来

git pull

3.切换到自己的分支

git checkout xxx(自己的分支)

4.把主分支的代码merge到自己的分支

git merge master

5.git push推上去ok完成,现在 你自己分支的代码就和主分支的代码一样了

git push origin 自己分支名

注意:一定时到某个分支,然后merge (另一个分支名字),最后将另一个分支合并到本分支

3.2 冲突解决

首先创建一个两分支模型,在云端创建两分支之后,制造一个冲突
git怎么多分支,git,linux,ubuntu

创建一个文件test.txt内容如下,并上传到远程develop分支

git怎么多分支,git,linux,ubuntugit怎么多分支,git,linux,ubuntu
将刚才创造上传到develop分支的文件合并到master分支则有
合并到master之前
git怎么多分支,git,linux,ubuntugit怎么多分支,git,linux,ubuntu

在develop分支和master分支分别修改该文件并上传到对应的远程主机
develop中的test.txt文件:
git怎么多分支,git,linux,ubuntumaster中的test.txt文件
git怎么多分支,git,linux,ubuntu

3.2.1 采用git指令合并的操作

切换到master并将develop合并(–no-ff合并)的master则有
git怎么多分支,git,linux,ubuntu

打开test.txt文件则有

git怎么多分支,git,linux,ubuntu

接下来需要手动操作保留哪一项文件内容,然后删除上面的HEAD,中间等号,和后面的develop部分。这里我们选择 都保留 则有

git怎么多分支,git,linux,ubuntu
回到git指令行中进行add 然后commit,然后push,如下图所示
git怎么多分支,git,linux,ubuntu

切换会develop分支发现文件还是develop分支的原文件,因为刚才是对master分支进行操作的,如下图所示
git怎么多分支,git,linux,ubuntu

此时我们可以将master分支合并到develop,则可以同步两个分支的文件
git怎么多分支,git,linux,ubuntu

3.2.2 采用Pull-Request合并冲突时的办法

首先还是分别在两个分支修改test.txt文件
master分支修改为并push
git怎么多分支,git,linux,ubuntudevelop分支修改为并push
git怎么多分支,git,linux,ubuntu来到网页上的远程主机,创建PR
git怎么多分支,git,linux,ubuntu

回到git,在develop分支中merge master分支,这样的好处在于,由上文所知,虽然在网页上是要将develop 合并到master,但是master分支一般很重要,因此这种冲突的处理建议在develop分支进行,因此,此处与上文略作区别,将master合并到develop,冲突处理完之后,是develop分支发生了改变,develop会领先master,然后再合并。
git怎么多分支,git,linux,ubuntu
按照之前一样,处理文件中的冲突
git怎么多分支,git,linux,ubuntu
然后上传到develop
git怎么多分支,git,linux,ubuntu

回到远程主机,刷新一下,变为可自动合并,注意此时develop是先于master的
git怎么多分支,git,linux,ubuntugit怎么多分支,git,linux,ubuntugit怎么多分支,git,linux,ubuntugit怎么多分支,git,linux,ubuntu

然后检查两个分支的文件,注意master需要拉取(pull)一下
git怎么多分支,git,linux,ubuntu

3.2.3 合并过程的问题探究

那如果按照上述操作(即将master采用指令合并到develop)的话,develop中有新的内容会被master覆盖嘛?
创建新文件并修改,然后push
git怎么多分支,git,linux,ubuntugit怎么多分支,git,linux,ubuntu

修改master分支下的test.txt文件,并push
git怎么多分支,git,linux,ubuntu
git怎么多分支,git,linux,ubuntu

然后来到远程主机,创建PR可以发现如上文所示,无法自动合并
git怎么多分支,git,linux,ubuntu

为了保证master的安全,我们将,master合并到develop,然后来处理冲突
git怎么多分支,git,linux,ubuntu

此时的develop分支为
git怎么多分支,git,linux,ubuntu

可以发现new.txt还在,将master合并到develop的时候并不会完全覆盖develop的内容,因为develop是一个分支,合并不是覆盖,是比较并合并。
和前文一样,在develop下处理冲突

4. 一台电脑对应多个git平台的处理方式

当一个机子对应多个git平台时,需要进行如下操作:
~/.ssh文件夹下面存在多个sshkey,可以看到最初的是红框的部分
git怎么多分支,git,linux,ubuntu

我这个部分中使用的是gitee的sshkey,因此使用github时需要新生成一个sshkey,采用指令:

ssh-keygen -t rsa -C "youremail@xxx.com"

后面的邮箱部分是一个标识符号,输入之后会出现一个路径选择,在路径选择中输入:

/home/jiahua/.ssh/id_rsa_github

然后不设置ssh的密码(两次回车)即可生成下面的第二部分
git怎么多分支,git,linux,ubuntu
然后cat 获取.pub文件中的内容
粘贴到github平台的公钥中
由于是多个平台,需要准备一个名字为config的文件,即采用指令touch config
文件中的内容如下

# gitee
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github

这样一来,使用ssh -T git@github.com 即可以成功链接平台
在上传代码时,由于之前使用过

git config --global user.name yourname  # "你的名字或昵称"
git config --global user.email youremail@xxx.com # "你的邮箱"

如果github和gitee的config一致可以不用在操作,若是不一致,可以在这个.git仓库下采用

git config  user.name yourname  # "你的名字或昵称"
git config user.email youremail@xxx.com # "你的邮箱"

即可完成在该仓库下的认证。

5. 一个代码仓库上传到不同平台的操作

先按照上文添加远程仓库ssh密钥
然后采用指令

git remote add origin-github https://the_address.git

上面的origin-github可以自己给定远程仓库别名,便于记忆即可
推送到远程仓库

git push/pull origin-github master:master

跟上文一样from xxx to xxx文章来源地址https://www.toymoban.com/news/detail-813505.html

到了这里,关于多分支Git的操作简介,冲突合并,多平台对应的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Git】分支合并&冲突产生与解决

    文章学习自:麦兜搞IT,如有侵权,告知删除 合并操作在Git中属于最为核心的一个操作,包括三种合并方式:一种为fast forward ,需要满足有非常强的前提条件才能执行;一种为3 way merge方式,这种是我们工作中常见的;最后一种为变基rebase。另外,本篇文章也会深入讲解冲突

    2024年02月04日
    浏览(35)
  • 深入了解 Git 分支合并冲突解决步骤

    在协作开发中,当不同分支对同一文件的相同位置进行修改时,往往会出现合并冲突。这些冲突需要开发者手动介入解决,以确保代码的一致性和稳定性。以下是解决 Git 合并冲突的有效步骤,让我们深入了解这个过程。 一旦执行 git merge 分支名称 进行合并操作,Git 会尝试自

    2024年02月04日
    浏览(37)
  • 如何解决Git合并分支造成的冲突

    一、造成冲突的场景         在我们在参与项目开发的时候,通常会创建公共的文件,但是当我们编码完成,使用git进行分支合并时,往往会出现合并冲突,也就是负责不同部分的开发人员会对同一个文件的同一个部分进行修改,这个时候就需要我们解决合并造成的冲突

    2023年04月23日
    浏览(49)
  • 【Git教程】(六)分支合并 —— 合并过程,各类合并冲突及解决思路 ~

    使用 merge 命令来进行分支合并是 Git 中最重要的操作之一。虽然这一操作的底层算法很复杂,但调用起来却很简单。我们可以通过指定分支名称来选择待合并修改的分支。然后, Git 会基于合并的内容来创建一次新的提交。 下面,我们来看下图中的这个例子:在一群开发者在

    2024年04月25日
    浏览(35)
  • 【Git】在idea中多分支开发如何——合并分支、处理冲突

    博主简介: 22级计算机科学与技术本科生一枚🌸 博主主页:是瑶瑶子啦 每日一言🌼: “人间总有一两风,填我十万八千梦” 我当前开发的分支—— hfy 我想将 subject 分支的最新代码拉取合并到 hfy 分支 点击之后会出现界面,有需要你处理的冲突( 冲突的处理的本质就是:你

    2024年04月17日
    浏览(39)
  • Git入门实战教程之合并分支并解决冲突

    在开发过程中,难免会遇到代码冲突的情况,那么该如何处理呢? 分支策略: 首先master主分支应该是非常稳定的,也就是用来发布新版本,一般情况下不允许在上面干活,干活一般情况下在新建的dev分支上干活,干完后,比如上要发布,或者说dev分支代码稳定后可以合并到

    2024年04月10日
    浏览(36)
  • git的分支的使用,创建分支,合并分支,删除分支,合并冲突,分支管理策略,bug分支,强制删除分支

    查看当前本地仓库中有哪些分支 HEAD所指向的分支就是当前正在工作的分支 创建一个分支 创建好了,但是目前还是指向 master 用tree命令也可以看到已经创建分支成功了 创建出来的分支,和主分支的最新记录是一样的 切换分支就是让HEAD指向我们的dev分支 我们在dev分支上堆R

    2024年02月04日
    浏览(40)
  • git中合并分支时出现了代码冲突怎么办

    友情提醒: ①git merge命令介绍 git merge 用于本地分支的合并。将一个本地分支的更改合并到另一个本地分支时,你会使用git merge命令。 git merge命令用于将一个分支的更改合并到另一个分支。它会将两个分支的更改整合在一起,保留详细的合并信息,并成为一个新的提交。 例如

    2024年03月20日
    浏览(41)
  • Git管理神器SourceTree使用教程详解(连接远程仓库,克隆,拉取,提交,推送,新建/切换/合并分支,冲突解决,提交PR)

    俗话说的好工欲善其事必先利其器,Git分布式版本控制系统是我们日常开发中不可或缺的。目前市面上比较流行的Git可视化管理工具有SourceTree、Github Desktop、TortoiseGit,综合网上的一些文章分析和自己的日常开发实践心得个人比较推荐开发者使用SourceTree,因为SourceTree同时支持

    2024年02月03日
    浏览(163)
  • Git 分支操作详解:创建、提交、合并主分支

            Git 是一款强大的分布式版本控制系统,分支是其核心特性之一,为团队协作和项目管理提供了灵活性。本文将介绍 Git 分支的基本用法,包括创建分支、提交更改、合并主分支等操作。 1、 创建分支         在 Git 中,分支是项目开发的不同线路,它们允许团

    2024年02月05日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包