一、前言
学习Git是非常有价值和重要的,无论是一个个人开发者还是在团队中进行协作开发。以下是一些学习Git的原因:
-
版本控制
:Git是目前最流行的分布式版本控制系统,可以帮助你跟踪、管理和控制代码的版本。你可以轻松地回退到先前的版本、比较不同版本之间的差异、解决代码冲突等。版本控制使你能够更安全地进行代码更改和实验,同时提供了一种备份机制,以防止代码丢失。 -
团队协作
:在多人协作开发的项目中,Git提供了强大的分支管理功能,可以让团队成员并行开发不同的功能,然后合并他们的工作。Git可以帮助团队协调合作,避免代码冲突,并提供更好的代码合并和冲突解决机制。 -
分布式开发
:Git是一种分布式版本控制系统,每个开发者都可以拥有完整的代码仓库副本。这使得开发者可以在没有网络连接的情况下进行工作,而且即使中央服务器出现故障,也可以从其他开发者那里获取代码。 -
开源项目参与
:很多开源项目都使用Git作为版本控制工具。学习Git可以使你更容易参与开源项目,提交代码补丁、分支和合并请求,与其他开发者合作并贡献代码。
(点评:对测试要求有点高了哈,大部分测试连开源项目怎么用都不知道,要求参与开源项目格局可以)
-
历史追溯和问题排查
:Git记录了每个提交的详细历史,包括代码更改、作者、时间戳等。这使得你可以方便地追溯代码的演变历史,并帮助你识别和解决问题。
(点评:对测试很友好,可以方便分析测试范围,再资深的测试专家也是需要范围的,毕竟测试是无穷的)
-
可移植性和灵活性
:Git是一个跨平台的版本控制系统,支持Windows、Mac和Linux等操作系统。它可以与各种集成开发环境(IDE)和其他工具集成,为你提供更灵活的开发环境。
综上所述,学习Git可以提升你的开发效率、改善团队协作、增强代码管理和控制能力,同时为参与开源项目和面试中展示的技能提供优势。无论是个人开发还是团队协作,Git都是必备的技能之一。
(点评:对测试来说,在开发代码和白盒测试方面不可或缺,也是技能提升必备)
二、git介绍
Git是一个分布式版本控制系统,最初由Linus Torvalds于2005年创建,用于管理和跟踪源代码的版本。它广泛用于软件开发中,可帮助开发人员在团队协作环境中管理代码,并跟踪和记录代码的变更历史。
下面是Git的一些关键特点和概念:
-
分布式版本控制
:与传统的集中式版本控制系统不同,Git是一种分布式版本控制系统。每个开发者都可以拥有完整的代码仓库副本,这使得开发者可以在没有网络连接的情况下进行工作,并且即使中央服务器出现故障,代码仍然可用。 -
提交(Commit)
:Git中的提交是指对代码进行的一次更改。每个提交都有一个唯一的标识符(SHA-1哈希值),记录了提交的作者、时间戳、提交消息和更改的内容。提交是Git中的基本单位,它构成了代码的版本历史。 -
分支(Branch)
:Git使用分支来支持并行开发和特性隔离。每个分支都是代码仓库的一个独立副本,开发者可以在分支上进行修改,而不会影响主线(通常是主分支)。分支可以合并到其他分支,以将更改合并到主线或其他分支。 -
合并(Merge)
:合并是将一个分支的更改合并到另一个分支的操作。当开发人员在不同的分支上进行工作时,他们可以将一个分支中的更改合并到另一个分支中,以包含最新的更改。 -
远程仓库(Remote Repository)
:远程仓库是存储在网络上的代码仓库,用于团队协作和代码共享。开发者可以将本地的代码推送(Push)到远程仓库,或者从远程仓库拉取(Pull)最新的代码。 -
克隆(Clone)
:克隆是指从远程仓库复制整个代码仓库到本地。通过克隆,开发者可以获取远程仓库的最新代码并开始工作。 -
提交历史和回滚
:Git保存了所有提交的历史记录,可以方便地查看和回滚到先前的提交。这对于追踪代码更改、排查问题和恢复到旧版本非常有用。
Git拥有强大的功能和灵活性,使开发者能够高效地管理代码和协作开发。它提供了丰富的命令行工具和各种图形界面工具(如Git客户端和集成开发环境插件),使得学习和使用Git变得更加便捷。
二、常用的 Git 命令
-
git init
: 在当前目录初始化一个新的 Git 仓库。git init
-
: 克隆(Clone)一个远程仓库到本地。
git clone <repository>
-
git add <file>
: 将文件添加到暂存区(Staging Area)。git add <file>
-
git commit -m "<message>"
: 提交暂存区中的文件,并附带提交信息。git commit -m "<message>"
-
git status
: 显示工作树(Working Tree)和暂存区的状态。git status
-
git log
: 显示提交日志。git log
-
git branch
: 显示分支列表。git branch
-
git checkout <branch>
: 切换到指定分支。git checkout <branch>
-
git merge <branch>
: 将指定分支合并到当前分支。git merge <branch>
-
git pull
: 从远程仓库拉取最新的提交并合并到当前分支。git pull
-
git push
: 将本地提交推送到远程仓库。git push
-
git remote add <name> <url>
: 添加远程仓库。git remote add <name> <url>
-
git remote -v
: 显示远程仓库的详细信息。git remote -v
-
git diff
: 显示工作树和暂存区之间的差异。git diff
-
git reset <file>
: 撤销对文件的暂存操作。git reset <file>
-
git revert <commit>
: 撤销指定提交的更改。git revert <commit>
-
git stash
: 暂存当前的修改,以便稍后恢复。git stash
这些是 Git 中的一些常用命令,用于版本控制、分支管理、提交操作、远程仓库操作等。更多的 Git 命令和选项可以在 Git 的官方文档或者通过
git --help
命令获取。
三、IDEA git操作解读
在 IntelliJ IDEA 中,可以通过图形界面或者命令行来执行 Git 操作。以下是一些常见的 Git 操作及其在 IntelliJ IDEA 中的解读:
-
克隆远程仓库:
- 在 IDEA 欢迎界面选择 “Checkout from Version Control”,然后选择 “Git”。
- 在弹出窗口中输入远程仓库的 URL,并选择本地路径。
-
点击 “Clone” 按钮完成克隆操作。
-
提交更改:
- 在项目视图中,右键点击要提交的文件或文件夹,选择 “Git” -> “Commit Directory” 或者 “Commit File”。
-
在弹出的 Commit Changes 窗口中,填写
提交信息
并选择要提交的文件。 - 点击 “Commit” 按钮提交更改。
-
查看修改:
- 在项目视图中,右键点击要比较的文件或文件夹,选择 “Git” -> “Compare” -> “Against the Latest Revision”。
- IDEA 会打开一个 Diff 窗口,显示工作树与最新提交之间的差异。
-
推送更改:
- 在 IDEA 的顶部工具栏中,点击 Git 工具栏按钮。
- 选择要推送的分支,并点击 “Push” 按钮。
- IDEA 将会将本地的提交推送到远程仓库。
-
拉取更新:
- 在 IDEA 的顶部工具栏中,点击 Git 工具栏按钮。
- 点击 “Update Project” 图标。
- IDEA 将会拉取远程仓库的最新提交并合并到当前分支。
这些是在 IntelliJ IDEA 中进行 Git 操作的一些常见示例。除了上述操作之外,IDEA 还提供了许多其他的 Git 功能,如创建分支、合并分支、查看日志、解决冲突等。可以通过菜单栏中的 “VCS” 或右键点击项目视图中的文件来访问这些功能
测试实践1:怎么快速知道dev分支和test分支之间的改动
答:
在 IntelliJ IDEA 中,可以使用 Git 工具来比较
dev
分支和
test
分支之间的改动。下面是一些步骤:
-
确保你已经在 IntelliJ IDEA 中打开了项目,并且项目已经与 Git 进行了关联。
-
在 IDEA 的底部工具栏上,有一个版本控制工具栏,其中包含了一些版本控制相关的操作按钮。如果你没有看到该工具栏,可以通过选择 View -> Tool Windows -> Version Control 来打开它。
-
在版本控制工具栏上,你会看到当前所在的分支名称。右键点击该分支名称,然后选择 “Compare with Branch”。
-
在弹出的对话框中,选择
test
分支作为要比较的分支。点击 “OK”。
-
现在,你将看到一个显示了
dev
分支和
test
分支之间改动的界面。你可以看到新增、修改和删除的文件,以及具体的代码改动。
通过上述步骤,你可以快速查看
dev
分支和
test
分支之间的改动。这样可以方便地了解两个分支之间的差异,并且可以帮助你进行代码审查和合并操作
测试实践2:
解读下 git 的show Diff with Working Tree
答:
git show diff with working tree
是一个 Git 命令,用于显示当前工作树(Working Tree)与最新提交(HEAD)之间的差异。
具体解读如下:
-
git
: Git 命令行工具。
-
show
: Git 的一个子命令,用于显示各种对象的信息,包括提交、分支、标签等。
-
diff
:
show
命令的一个选项,表示显示差异(diff)信息。
-
with Working Tree
: 这部分表示与当前工作树进行比较,即与最新的代码变更之间的差异。
总体而言,
git show diff with working tree
命令用于展示当前工作树中与最新提交之间的变更内容,以便开发者了解当前的修改情况。它会显示文件的增删改等变更,并提供相应的差异比较。
四、PyCharm git操作解读
在 PyCharm 中,可以通过图形界面或者命令行来执行 Git 操作。以下是一些常见的 Git 操作及其在 PyCharm 中的解读:
-
克隆远程仓库:
- 在 PyCharm 欢迎界面选择 “Check out from Version Control”,然后选择 “Git”。
- 在弹出窗口中输入远程仓库的 URL,并选择本地路径。
-
点击 “Clone” 按钮完成克隆操作。
-
提交更改:
- 在项目视图中,右键点击要提交的文件或文件夹,选择 “Git” -> “Commit Directory” 或者 “Commit File”。
- 在弹出的 Commit Changes 窗口中,填写提交信息并选择要提交的文件。
- 点击 “Commit” 按钮提交更改。
-
查看修改:
- 在项目视图中,右键点击要比较的文件或文件夹,选择 “Git” -> “Show Diff”。
- PyCharm 会打开一个 Diff 窗口,显示工作树与最新提交之间的差异。
-
推送更改:
- 在 PyCharm 的顶部工具栏中,点击 Git 工具栏按钮。
- 选择要推送的分支,并点击 “Push” 按钮。
- PyCharm 将会将本地的提交推送到远程仓库。
-
拉取更新:
- 在 PyCharm 的顶部工具栏中,点击 Git 工具栏按钮。
- 点击 “Update Project” 图标。
- PyCharm 将会拉取远程仓库的最新提交并合并到当前分支。
这些是在 PyCharm 中进行 Git 操作的一些常见示例。除了上述操作之外,PyCharm 还提供了许多其他的 Git 功能,如创建分支、合并分支、查看日志、解决冲突等。可以通过菜单栏中的 “VCS” 或右键点击项目视图中的文件来访问这些功能。
五、VS code git操作解读
在 Visual Studio Code (VS Code) 中,你可以使用内置的 Git 集成进行版本控制和执行各种 Git 操作。以下是一些常见的 Git 操作及其解读:
-
克隆远程仓库:
- 打开 VS Code,并点击左侧的源代码管理图标(Git 图标)。
- 点击 “Clone Repository”,然后输入远程仓库的 URL。
-
选择本地路径,并点击 “Clone” 完成克隆操作。
-
提交更改:
- 在源代码管理视图中,可以看到已修改的文件。
- 点击文件旁边的加号图标将文件添加到暂存区。
- 在 “Message” 输入框中填写提交信息。
- 点击勾号图标或者使用快捷键 Ctrl+Enter 来提交更改。
-
查看修改:
- 在源代码管理视图中,可以看到已修改的文件。
- 点击文件名或者展开文件旁边的下拉箭头来查看修改的详细内容。
-
推送更改:
- 在源代码管理视图中,点击左上角的三个点图标。
- 选择要推送的分支,并点击 “Push” 完成推送操作。
-
拉取更新:
- 在源代码管理视图中,点击左上角的三个点图标。
- 选择要拉取更新的分支,并点击 “Pull” 完成拉取操作。
除了上述操作之外,VS Code 还提供了许多其他的 Git 功能,如创建分支、合并分支、查看历史记录、解决冲突等。你可以在源代码管理视图中通过右键点击文件或文件夹来访问这些功能。
在 VS Code 中,你还可以通过终端窗口使用 Git 命令行工具执行更高级的 Git 操作。在 VS Code 的顶部菜单栏中选择 “View” -> “Terminal” 来打开终端窗口,然后输入 Git 命令并执行。
六、总结
不同工具下的git使用差不多。这几个命令是最常用的:
git show diff with working tree -- IDEA中用来合并test分支准备发版的
Compare with Branch —
IDEA中用来对比分支的改动的
用来看谁提交了什么代码,以及当前版本和基准对比的改动:
总而言之,测试掌握git,能够最大消除开发测试信任误差 ,精准测试范围,提高同频对话能力,为迭代质量保驾护航。
2023年7月17笔