嵌入式软件工程师-嵌入式开发工具-Git版本控制_Git冲突解决与合并策略.docx

嵌入式软件工程师-嵌入式开发工具-Git版本控制_Git冲突解决与合并策略.docx

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

PAGE1

PAGE1

Git版本控制基础

1Git仓库和工作区的概念

Git仓库(repository)是Git存储项目历史版本的地方,它通常位于项目目录的隐藏文件夹.git中。仓库包含了所有提交过的文件、目录、以及它们的版本历史信息。工作区(workingdirectory)则是你进行项目开发的地方,它包含了仓库中最新一次提交的文件的副本。

1.1示例

假设你有一个项目目录my_project,当你在该目录下初始化Git仓库时:

#在当前目录下初始化一个Git仓库

gitinit

此时,.git文件夹被创建,它将存储所有版本控制的元数据。当你添加文件到Git仓库并进行提交时:

#将工作区中的文件添加到暂存区

gitaddREADME.md

#将暂存区的文件提交到仓库

gitcommit-m添加项目说明文件

README.md文件现在被添加到仓库中,而工作区中的README.md文件则保持不变,直到你再次进行修改并提交。

2基本的Git命令:clone,add,commit,push

2.1Gitclone

gitclone命令用于从远程仓库克隆一个项目到本地。这会创建一个本地仓库的副本,包括所有提交历史和分支。

#克隆远程仓库到本地

gitclone/username/my_project.git

2.2Gitadd

gitadd命令用于将工作区的文件添加到暂存区,准备进行提交。

#添加所有修改过的文件到暂存区

gitadd.

#添加特定文件到暂存区

gitaddREADME.md

2.3Gitcommit

gitcommit命令用于将暂存区的文件提交到仓库,保存项目的一个快照。

#提交暂存区的文件,并添加提交信息

gitcommit-m修复了小错误

2.4Gitpush

gitpush命令用于将本地仓库的提交推送到远程仓库,与他人共享你的更改。

#将本地仓库的提交推送到远程仓库的master分支

gitpushoriginmaster

3分支管理:branch,checkout,merge

3.1Gitbranch

gitbranch命令用于创建、显示或删除分支。分支允许你在不影响主分支的情况下进行开发。

#创建一个名为feature的新分支,但不切换到该分支

gitbranchfeature

#列出所有分支

gitbranch

3.2Gitcheckout

gitcheckout命令用于切换分支,或者恢复工作区的文件到之前的状态。

#切换到feature分支

gitcheckoutfeature

#从暂存区恢复工作区的文件

gitcheckout--README.md

3.3Gitmerge

gitmerge命令用于将一个分支的更改合并到另一个分支中。这通常发生在你完成一个功能分支的开发后,将其合并到主分支。

#将feature分支的更改合并到master分支

gitcheckoutmaster

gitmergefeature

3.4解决冲突

当两个分支中对同一文件的同一行进行了不同的修改时,合并时会出现冲突。Git会标记冲突的行,并要求你手动解决。

3.4.1示例

假设在master分支中,README.md文件的第1行是“这是一个项目”,而在feature分支中,同一行被修改为“这是一个很棒的项目”。当你尝试合并feature到master时,Git会标记冲突:

#合并feature分支到master分支

gitcheckoutmaster

gitmergefeature

#查看冲突文件

catREADME.md

你将看到类似以下的输出:

HEAD

这是一个项目

=======

这是一个很棒的项目

feature

你需要手动编辑文件,选择保留哪一行,或者合并两行的内容。解决冲突后,你需要再次提交更改:

#解决冲突后,提交合并

gitaddREADME.md

gitcommit-m解决与feature分支的合并冲突

3.5合并策略

Git提供了多种合并策略,包括recursive、resolve、octopus等。默认情况下,Git使用recursive策略,它会尝试自动解决冲突,但当自动解决失败时,会标记冲突并要求你手动解决。

3.5.1示例

假设你有两个分支master和feature,它们都修改了README.md文件的第1行。你可以使用recursive策略进行合并:

#使用recursive策略合并feat

文档评论(0)

kkzhujl + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档