文章目录
说明
本教程按照 git在线练习 顺序进行,将在线测试的命令操作落地到 IDEA,使用开发工具来实现所有在线练习中的操作。
你可以结合 git在线练习 来学习本教程,先在线学习git命令,再在 IDEA 中实现相同操作。
新建测试工程
新建 Empty Project:git-test1
新建 Java Module:demo1
新建一个类
package test;
public class Test1 {
public static void main(String[] args) {
System.out.println(1);
}
}
创建本地仓库
将工程目录 git-test1 设置为本地仓库目录
初始提交
在 git 工具窗口中查看提交历史
提交操作
第二次提交
添加一句打印
package test;
public class Test1 {
public static void main(String[] args) {
System.out.println(1);
System.out.println(2);
}
}
按 ctrl+k 执行提交操作
查看提交历史,可以看到有两次提交
上面的提交历史对照 learngitbranching.js.org 的结构图
第三次和第四次提交
执行以下两步操作:
- 添加打印3的语句并提交
- 添加打印4的语句并提交
上面的提交历史对照 learngitbranching.js.org 的结构图
重置到第二次提交
为了继续做下一步练习,先对提交历史进行重置操作
重置后,只有前两次提交
分支合并 - merge
准备提交结构
新建一个 bugFix 分支
如果勾选 Checkout branch
选项,新建分支后会自动切换到新分支
现在,master分支、bugFix分支和HEAD,都合并在最后一次提交位置
对bugFix分支做一次提交
上一步已经切换到了 bugFix 分支,现在在这个分支上添加一句打印并提交。提交后 bugFix 分支前进了,而 master 分支仍停留在上一步
上面的提交历史对照 learngitbranching.js.org 的结构图
切换到 master 分支
在 IDEA 窗口右下角,点击bugFix分支,在菜单中切换到 master 分支
现在切换到了 master,HEAD 表示当前所在的提交位置
上面的提交历史对照 learngitbranching.js.org 的结构图
星号表示 HEAD
对 master 分支做一次提交
在前面添加一句打印0并提交,现在,master 也前进了一步
上面的提交历史对照 learngitbranching.js.org 的结构图
合并分支 - 将bufFix分支合并到master
我们现在在 master 分支,点击右下角 master 分支,在菜单中找到 bugFix 分支向 master 进行合并
现在,bugFix 的代码合并到了 master,并在 master 分支上生成了一个新的提交
上面的提交历史对照 learngitbranching.js.org 的结构图
试试再将master分支向bugFix分支合并会发生什么
切换到bugFix分支
选择 master 向 bugFix 分支进行合并
只是简单地把bugFix移动到了master
上面的提交历史对照 learngitbranching.js.org 的结构图
重置到第二次提交
切换到master分支
重置到第二次提交
删除bugFix分支
重置后,只有前两次提交
上面的提交历史对照 learngitbranching.js.org 的结构图
使用 rebase 合并分支
准备提交结构
创建bugFix分支,然后对它提交一次
在 bugFix 分支,添加打印3并做一次提交。bugFix 前进了一步
切换到 master 然后对master执行一次提交
在上面添加打印0并提交一次,master 前进了一步
上面的提交历史对照 learngitbranching.js.org 的结构图
将 bugFix 移动到 master 分支
用 rebase 操作,可以将 bugFix 的提交移动到 master 分支,形成一条连续的提交记录。
切换到bugFix分支
在 bugFix 分支下,右键点击 master 分支,在菜单中选择 rebase 操作
rebase 后,bufFix 移动到 master 分支上,形成一条连续提交记录,且代码进行了合并
上面的提交历史对照 learngitbranching.js.org 的结构图