使用 Git 工具

更新时间:
2024-12-20

使用 Git 工具

Git 简介 中我们可以了解到,TortoiseGit 是基于 Git 的图形化用户界面客户端工具,使用 TortoiseGit 进行软件开发和版本控制更加直观、便捷。本节我们主要介绍汉化版 TortoiseGit 的常用功能及其使用方法,更详细的内容请参见 Git 官方文档open in new window

设置 TortoiseGit

  1. 在工作区的任意文件夹空白处,单击右键选择 TortoiseGit > 设置

  2. 在设置对话框中,可以按需设置 TortoiseGit 的语言、右键菜单、凭证等,设置完成后单击确定即可。

克隆代码

  1. 登录远程仓库,进入目标项目,单击克隆,然后单击使用 SSH 克隆后的复制链接按钮。

  2. 进入想要存储代码的目标文件夹,单击右键选择 Git 克隆

  3. 在 Git 克隆对话框中,将复制的远程仓库项目地址粘贴至 URL 文本框,目录会自动识别,也可以自定义,确认后单击确定,开始克隆。

  4. 克隆过程中可以查看进度,克隆完成后,单击关闭,完成代码克隆。

创建分支

分支是项目并行开发和版本控制的重要工具。为方便项目开发与管理,开发人员可以创建自己的本地分支,待代码开发完成后,再将代码合并至主线分支,保证功能完整性的同时,又不会干扰主线分支。Git 支持在远程仓库创建分支,也支持将代码克隆至本地后通过 Git 工具创建分支。在远程仓库创建分支的方法请参见 新建分支,此处主要介绍如何在本地创建分支。

  1. 在工作区中选择目标代码文件夹,单击右键选择 TortoiseGit > 创建分支

  2. 在创建分支对话框中,设置分支名称,并选择创建分支的依赖信息,如基于哪个分支、标签或某次提交创建分支,设置完成后单击确定

选择分支

为方便管理,一个项目代码一般会包含多个分支,在进行代码修改前,需要先选择目标分支。

  1. 在工作区中选择目标代码文件夹,单击右键选择 TortoiseGit > 切换/检出

  2. 在切换/检出对话框中,选择目标分支,并单击确定

    如果没有目标分支,也可以勾选创建新分支,并定义分支名称,将代码切换至新建的分支。

拉取代码

使用 Git 进行代码管理时,一般是多人协同工作,为避免提交代码时引起冲突,在本地修改或提交代码前,建议先执行拉取操作,将本地代码更新至最新。

  1. 在工作区中选择目标代码文件夹,单击右键选择 TortoiseGit > 拉取

  2. 在拉取对话框中,根据需要进行相关设置,并单击确定

  3. 拉取过程中可以查看拉取进度,拉取完成后,单击关闭,完成代码拉取。

修改代码

将远程仓库代码克隆至本地,创建或选择目标分支,并拉取至最新代码后,便可以在工作区进行代码的修改。修改代码过程中可能会使用到如下功能:

查看本地修改

  1. 在工作区中选择目标代码文件夹,单击右键选择 TortoiseGit > 比较差异

  2. 在如下界面,可以查看修改的文件和未受版本控制的文件。选中文件单击右键可以对文件进行还原、提交、添加和查看具体修改等操作。

还原已修改代码

还原已修改代码时分 3 种情况,即还原未提交的修改、还原某次已提交修改和还原多次已提交修改至指定版本。下面分别介绍了这 3 种场景的具体操作方法,开发者可以按照实际需求选择合适的还原方式。

  • 还原未提交的修改

    1. 在工作区中选择目标代码文件夹,单击右键选择 TortoiseGit > 还原

    2. 在还原对话框中,选择要还原的文件,单击确定,即可将相关文件的修改还原至修改前。还原操作会导致修改的内容丢失,请谨慎操作。

  • 还原某次已提交的修改

    1. 在工作区中选择目标代码文件夹,单击右键选择 TortoiseGit > 显示日志

    2. 在日志信息对话框中,选择要还原的提交信息,单击右键选择还原此版本做出的变更

    3. 在如下界面选择确定,按需修改后再提交;或选择提交,直接提交本次回退的内容。

  • 还原多次已提交的修改至指定版本

    1. 在工作区中选择目标代码文件夹,单击右键选择 TortoiseGit > 显示日志

    2. 在日志信息对话框中,选择要还原到的某次提交记录,单击右键选择重置到此版本

    3. 在重置对话框中,选择重置类型,并单击确定

      • 软重置:此记录之后的提交内容不删除,全部还原到工作区,还原的文件处于已暂存(Stage)状态。
      • 混合重置:此记录之后的提交内容不删除,全部还原到工作区,还原的文件处于已修改(Modified)状态。
      • 硬重置:此记录之后的提交内容全部删除,并不会还原到工作区。工作区中只保留此提交记录中提交的内容。当确定不需要之后提交的内容时,请选择硬重置。

添加文件至版本库

  1. 在工作区中选择目标代码文件夹或文件,单击右键选择 TortoiseGit > 添加

  2. 在添加对话框中,选择要添加的文件,Git 会自动识别并选择未受版本控制的文件,您可以根据需求重新选择,然后单击确定,将新建的文件添加至版本库。

从版本库中删除文件

在工作区中选择需要删除的文件夹或文件,单击右键选择 TortoiseGit > 删除TortoiseGit > 删除并保存本地副本

  • 删除:版本库和本地工作目录中的文件均会被删除。

  • 删除并保存本地副本:只删除版本库中的文件,不删除本地工作目录中的文件。

贮藏 / 应用更改

如果您在当前分支已修改部分代码,此时想切换到其他分支,则可以通过贮藏更改功能将当前分支修改的文件保存,之后再应用即可。

  1. 在工作区中选择目标代码文件夹,单击右键选择 TortoiseGit > 贮藏更改
  1. 在贮藏对话框中设置贮藏日志,并单击确定

  2. 贮藏完成后,单击关闭,完成当前分支已修改代码贮藏。

  3. 贮藏更改后,如果要应用贮藏,可以通过如下两种方式应用:

    • 直接应用:选中要应用贮藏的目标文件夹,单击右键选择 TortoiseGit > 弹出贮藏,会直接应用最近一次贮藏记录中贮藏的文件。

    • 通过贮藏列表应用:选中要应用贮藏的目标文件夹,单击右键选择 TortoiseGit > 贮藏列表,在贮藏记录界面会显示所有的贮藏记录,选择要应用的记录,单击右键选择应用贮藏,即可应用此记录中贮藏的文件。

提交代码

  1. 在工作区中选择修改好的文件夹或文件,单击右键选择 TortoiseGit > 提交

  2. 在提交对话框中,填写提交日志信息,选择要提交的文件,并单击提交,将文件提交至本地仓库。

  3. 提交完成后,可以单击关闭,完成提交。也可以单击推送,将本次提交的内容推送至远程仓库。推送的具体操作请参见 推送代码

推送代码

  1. 在工作区中选择刚才提交的文件夹,单击右键选择 TortoiseGit > 推送

  2. 在推送对话框中,单击确定

  3. 推送成功后,单击关闭,将本地仓库修改的代码推送至远程仓库。

    推送时如果有冲突,需要先 解决冲突 后,再次执行推送操作。

合并分支

为保证项目代码的质量和稳定性,一个项目一般会包含正式交付的主线分支和多个开发分支,当在开发分支完成某个特性开发后,需要在远程仓库提交合并请求,将相关代码合并至主线分支。为避免提交合并请求的文件产生冲突,在远程仓库创建合并请求前,需要将远程仓库主线分支的内容合并至自己的工作分支,解决冲突 后,再提交合并请求。

  1. 在工作区中选择目标文件夹或文件,单击右键选择 TortoiseGit > 合并

  2. 在合并对话框中,选择要合并的分支,也支持基于某个标签或提交记录合并,然后单击确定,将其他分支的代码合并至您的工作分支。

    合并时如果有冲突,需要先 解决冲突 后,再进行合并。

解决冲突

因为 Git 可以多人协同工作,故进行代码推送或合并时,如果其他人也有修改,则可能会发生冲突。此时可参考如下步骤解决冲突。

  1. 在工作区中选择存在冲突的文件,单击右键选择 TortoiseGit > 编辑冲突

  2. 在 TortoiseGitMerge 界面,存在冲突的内容会高亮显示,右键单击产生冲突的块,根据实际需求选择合适的解决方式,并单击保存

    • 使用此文本块:使用选中的文本块。
    • 使用整个文件:整个文件中产生的所有冲突均使用选中的文本块。
    • 优先使用右侧文本块:保留所有修改,优先将右侧区域文本块的内容放在前边。
    • 优先使用左侧文本块:保留所有修改,优先将左侧区域文本块的内容放在前边。
  3. 在如下界面,选择标记为已解决,然后关闭 TortoiseGitMerge 界面。

  4. 待所有冲突解决完成后,再次提交代码,弹出如下界面,单击确定

  5. 在提交界面,删除 # 开头的内容,填写提交日志信息,并单击提交

    如果未删除 # 开头的内容,则提交时会弹出如下界面,选择忽略即可。

  6. 提交完成后,参考 推送代码,将修改的文件推送至远程仓库。

查看提交日志

通过显示日志功能,可以查看所有的历史提交记录,并根据提交记录进行重置、还原或创建分支等操作。

  1. 在工作区中选择要查看日志的文件夹,单击右键选择 TortoiseGit > 显示日志

  2. 在日志信息对话框中,可以查看所有的历史提交记录。选中某条提交记录,可以对此记录进行版本比较、重置、在此版本上创建分支 / 标签或还原此版本做出的变更等操作。

文档内容是否对您有所帮助?
有帮助
没帮助