Git 分支简介-创建-合并-解决冲突-删除

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

一、什么是分支

1.在版本控制系统(如Git)中,分支(Branch)是代码库的不同线路或路径,用于同时进行不同的开发工作。分支可以将代码库的状态 ‘‘复制’’ 到一个独立的环境中,使得在这个分支上进行的更改不会影响到其他分支。

2.使用分支的好处是可以同时进行多个并行的开发任务,每个任务都在自己的分支上进行。这样可以有效地隔离不同的功能开发、修复bug或其他任务,而不会互相干扰。完成一个任务后,可以将该分支的更改合并回主分支(通常是"master"或"main"分支),从而将新功能或修复应用到代码库的主干中。

3.分支让开发团队能够更灵活地管理代码的开发和发布过程。它们可以同时处理多个功能或任务,并且在开发过程中可以频繁地创建、合并和删除分支,以适应不同的开发需求。

4.在分支内部,所有与该分支相关的更改都是相对独立的,因此可以在不影响其他分支的情况下进行实验、测试和修改。分支也有助于团队合作,因为不同的开发人员可以在各自的分支上独立工作,而不会相互干扰。

5.总之,分支是版本控制系统中的一个重要概念,它提供了并行开发、隔离工作和代码管理的机制,使得团队能够更加高效地协同工作和管理代码库。

  • 总结:分支就是基于主支创建出来的一个"副本"(不是简单复制),在分支上修改的内容不会直接影响主支,且各个分支的内容相互独立。在分支上更新调试好后在将分支与主支合并,完成更新。分支只存放修改和更新的内容,而与主支一样的内容会直接引用。

  • 内容补充:
    在 Git 中,创建分支并不是将代码库的完整副本复制一份,而只是创建了一个指向特定提交(commit)的指针。实际上,在创建分支时,Git 仅仅创建了一个新的指针,该指针指向当前所在分支的最后一个提交(commit)。这样,新分支就可以独立地进行新增、修改和删除文件操作,而不会影响其他分支。由于 Git 使用的是基于快照(snapshot)的版本控制系统,每次提交(commit)都会记录项目的状态,因此创建新的分支并不需要复制整个代码库的副本。分支间共享大部分历史提交(commits),只有新分支上的更改会产生新的提交记录。因此,通过创建分支,您实际上是在给定的提交(commit)上创建了一个新的指针。这使得在不同的分支之间进行切换、合并和处理独立的开发任务变得非常高效和灵活。

二、相关命令

  • 查看分支

    git branch

  • 创建分支

    git branch 分支名

  • 删除分支

    git branch -d 分支名

  • 切换分支

    git checkout 分支名称

  • 分支合并(可能会产生冲突,需要手动解决)

    git merge 合并分支的名称
    注意:切换分支在合并,会合并到自己所在分支

  • 查看远程分支

    git branch -r

  • 推送并创建远程分支

    git push origin 分支名字

  • 将远程分支的内容拉回本地

    git pull origin 分支名字

  • 删除远程分支

    git push origin --delete 分支名字

三、简单实例演示

  • 只在本地仓库演示:

1. 新建一个文件夹,在该目录下打开git命名
使用 git init 初始化本地仓库 成功后会出现 .git文件 (如果没有点击 菜单栏上的 查看–勾选 隐藏 项目)
然后 新建一个文件,如果没有文件无法查看分支

git 创建分支,Git专栏,git

新建文件内容(方便与后面分支比较)
git 创建分支,Git专栏,git

2.将新建文件添加到缓冲区,然后提交
git add .
git commit -m “第一次提交,初始化仓库”

git 创建分支,Git专栏,git

3.查看分支
git branch

可以看到当前只有一个分支 master

git 创建分支,Git专栏,git

4.新建一个dev分支
git branch dev

然后查看分支
git branch

可以看到已经有dev 和 master 两个分支,当前在master分支
git 创建分支,Git专栏,git

5.切换分支到dev
git checkout dev

查看当前分支
git branch

如图:已经切换到 dev 分支
git 创建分支,Git专栏,git

6.查看文件目录,发现文件和以前一样,因为dev分支是基于master的
打开index.js文件也是一样

然后添加一些内容:console.log(‘我是dev分支新加的内容’);

git 创建分支,Git专栏,git

7. 添加到缓存区,然后提交(一定要有这一步)
git add .
git commit -m “dev-新增内容”

git 创建分支,Git专栏,git

8. 切换到master分支查看内容
git checkout master

查看当前分支(只是确认切换成功)
git branch

git 创建分支,Git专栏,git

9. 打开文件,查看index.js的内容
内容和以前一样,说明在dev分支修改的内容没有影响到master

git 创建分支,Git专栏,git
而切换回dev(git checkout dev)发现内容是修改过的
git 创建分支,Git专栏,git

10. 如果觉得dev分支已经开发完成,可以合并,确保自己在master分区
注意:当前是在master分支,是将dev分支合并到master分支
git merge dev

情况一:(无冲突)
这里是master内容没有被修改,后面会有被修改的情况(第 12点)
(master:我还是以前的我)
git 创建分支,Git专栏,git

11. 查看index.js内容
发现新增的内容已经合并到master(没有冲突)

git 创建分支,Git专栏,git


情况二:(有冲突)
在合并之前,master被修改了,有其他分支或自己 commit 过
(master:我已经不是以前的我了)

12. 合并dev分支前
修改index.js

git 创建分支,Git专栏,git

13. 添加缓冲区,提交 (再次提醒不要忘了这一步)
git add .
git commit -m “修改master”

git 创建分支,Git专栏,git

14. 回到master分区后将dev分支合并
git merge dev

图中出现的内容明显与上次合并出现不一样
意思是说:在index.js文件中合并冲突,自动合并失败;让你修复冲突,然后提交结果。
git 创建分支,Git专栏,git
(如果出现的是: Already up to date. 说明dev分支上次合并后没有其他更新,不需要合并,可以到dev分支修改一下内容,然后提交后在来合并,以此来验证这种情况)

15. 根据提示:打开index.js文件
查看冲突,根据实际情况选择需要保留的内容
(一些编辑器可能没有快捷的选项,可以他生成的特殊字段手动删除,选择)

git 创建分支,Git专栏,git
git 创建分支,Git专栏,git
这里我选择后面传入的更改
git 创建分支,Git专栏,git

16. 解决冲突后,然后提交
git add .
git commit -m “解决冲突”

git 创建分支,Git专栏,git

17.任务完成后可以删除不需要的dev分支
git branch -d dev

git 创建分支,Git专栏,git

完成!

四、其他

如果你在Git中意外删除了某个分支,或者误切换到了其他分支导致分支丢失,不用担心,Git提供了几种方法来恢复丢失的分支。

以下是几种常见的方法来恢复分支:
使用git reflog命令查看分支历史:git reflog命令可以查看所有分支的操作历史记录,包括被删除的分支。通过查找特定的提交记录或分支名称,可以找到被删除的分支的最后一次提交记录的哈希值。

git reflog
使用git branch <branch_name> <commit_hash>命令创建新分支:根据找到的提交记录的哈希值,可以使用该命令创建一个新的分支并将其指向该提交记录。这样就可以恢复被删除的分支。

git branch <branch_name> <commit_hash>
使用git fsck --lost-found命令查找丢失的对象:该命令会扫描Git对象数据库,查找没有引用的丢失对象,其中可能包括被误删的分支。找到对应的分支后,可以使用第二步的方法来恢复它。

git fsck --lost-found
从远程仓库恢复分支:如果分支已经推送到远程仓库,可以使用git fetch origin <branch_name>命令将远程分支恢复到本地。

git fetch origin <branch_name>
这些方法中的每一种都有不同的应用场景和使用方式。你可以根据自己的实际情况选择适合的方法来恢复分支。文章来源地址https://www.toymoban.com/news/detail-841966.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日
    浏览(36)
  • 如何解决Git合并分支造成的冲突

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

    2023年04月23日
    浏览(48)
  • Git 分支教程:详解分支创建、合并、删除等操作

    Git是一种强大的分布式版本控制系统,它的分支功能使得团队协作和代码管理变得更加灵活和高效。分支可以让开发人员在不影响主线开发的情况下进行并行开发和实验性工作。本篇博客将详解Git分支的创建、合并、删除等操作,帮助你更好地理解和使用Git的分支功能。 在开

    2024年02月05日
    浏览(35)
  • Git分支教程:详解分支创建、合并、删除等操作

    Git是一种强大的分布式版本控制系统,它的分支功能使得团队协作和代码管理变得更加灵活和高效。分支可以让开发人员在不影响主线开发的情况下进行并行开发和实验性工作。本篇博客将详解Git分支的创建、合并、删除等操作,帮助你更好地理解和使用Git的分支功能。 在开

    2024年02月14日
    浏览(48)
  • 【Git教程】(六)分支合并 —— 合并过程,各类合并冲突及解决思路 ~

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

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

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

    2024年04月10日
    浏览(35)
  • idea解决代码冲突-git分布式合并分支-加git回滚操作

    第一次接触项目发版的工作,记录一下解决版本冲突合并问题的心得。 适用场景:分布式项目,多人使用自己分支开发,最后合并自己的代码分支给主分支。 话不多说,直接看图 1.全部拉下来(这个拉取是全部拉取,既保证自己的分支最新,同时也把远端的分支都拉到最新

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

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

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

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

    2024年04月17日
    浏览(39)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包