- 1、本文档共21页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
- 前端开发工程师-软技能与项目管理-Agile-Scrum_敏捷测试与质量保证.docx
- 前端开发工程师-软技能与项目管理-Agile-Scrum_敏捷风险管理.docx
- 前端开发工程师-软技能与项目管理-Agile-Scrum_敏捷工具与软件:JiraTrello和Asana.docx
- 前端开发工程师-软技能与项目管理-Agile-Scrum_敏捷沟通技巧.docx
- 前端开发工程师-软技能与项目管理-Agile-Scrum_敏捷估算与计划:故事点与理想人日.docx
- 前端开发工程师-软技能与项目管理-Agile-Scrum_敏捷教练的角色与技能.docx
- 前端开发工程师-软技能与项目管理-Agile-Scrum_敏捷开发中的技术实践:结对编程代码审查和重构.docx
- 前端开发工程师-软技能与项目管理-Agile-Scrum_敏捷团队建设与管理.docx
- 前端开发工程师-软技能与项目管理-Agile-Scrum_敏捷项目度量与指标.docx
- 前端开发工程师-软技能与项目管理-Agile-Scrum_敏捷项目中的依赖管理.docx
文档评论(0)