文章目录
1.介绍
本次主要是通过IDEA来操作相关GIT操作做一个记录总结
IDEA2019.3.5 GIT220
初始化项目目录为:
...\Git\testJavaGit>tree
D:.
├─.idea
│ ├─inspectionProfiles
│ └─sonarlint
│ └─issuestore
└─src
├─main
│ ├─java
│ │ └─com
│ │ └─zy
│ │ ├─entity
│ │ └─service
│ └─resources
└─test
└─java
初始化一个类:
@Data
@Builder
public class Person {
private Integer pId;
private String pName;
}
初始化一个测试类:
public class TestDemo {
@Test
public void test1(){
Person p = Person.builder().pName("kkk").pId(1).build();
System.out.println("p = " + p);
}
}
2.图形操作
2.1 Commit Directroy
这个其实就是表示提交文件的意思,比如修改了原来版本控制的一些文件内容,那么点击这个就会转到提交页面
提交框还有许多参数没讲,后面再讲
2.2 Add
如上图,若没有选择add,那么创建的文件默认就不会加入到版本控制中,这个时候就是红色的,没有加入到版本控制中的文件,是不允许提交到仓库中去的
如上图,当使用add后,颜色变成黄绿色,表示已经受本地版本控制了,后续就可以提交到仓库了
2.3 .git/info/exclude
gitignore和exclude区别
.gitignore:需要提交的Git仓库,多用于忽略公共性的文件,例:java产生的.classpath | .project | logs/ …;
exclude:不需要提交Git仓库,用户个人配置文件或某些测试类;
2.4 Annotate
多人合作的时候,有些代码可能被人修改过了,但想要查找某些
代码片段
是哪些人改的,我们就可以用这个功能,打开annotate查看代码修改者
2.5 Show Current Revision
查看当前版本信息
2.6 Compare with the Same Repository Version
如上,这个命令其实就是比较本地代码和本地代码仓库版本里的代码
2.7 Compare with…
如上,这个功能可以把本地的代码和之前的版本代码进行比较查看
2.8 Compare with Branch…
这个也是如2.7一样,只不过是拿本地代码和分支其他代码的相同类里的代码片段进行比较
2.9 Show Histroy
可以查看文件提交的相关历史记录
2.10 Rollback
2.10.1 本地代码区回滚
执行回滚后,本地的所有修改代码的地方都会复原到最近一次版本的代码
2.10.2 本地仓库回滚
现在我们要回滚到16点56分那个版本,那么可以如下操作:
HEAD^ 是还原到上一个版本,HEAD^^ 是还原到上上一个版本。
Reset Type 有三种:
mixed 默认方式,只保留源码,回退commit和index信息
soft 回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit
hard 彻底回退,本地源码也会变成上一个版本内容
2.10.3 远程仓库回滚
从上面可知,其实revert,选中前面某个版本回滚,只是把选中的那个版本的代码进行了回滚,但是其他版本的代码还是一直存在的,不会全部回滚到我们选择的这个版本,即其他版本代码不受影响的,该命令就是为撤销某次提交而存在的;
当想撤销中间某次提交时,强烈建议使用revert命令,而不是reset。
git reset –hard commit_id 虽然可以回退远程库,但是其要求pull最新代码的每个人的本地分支都要进行版本回退。这样就增加工作量了!
注意:
若我们revert后,并没有点commit按钮,那么下次选中版本再提交的时候,会报All changes from 14132e57 have already been reverted
类似错误,不让我们在执行,这是因为已经idea已经为我们创建了修改记录,如下图
若不想进行回滚,那么可以取消revert,然后再终止revert就可以恢复恢复成刚开始状态了
2.11 Repository
2.11.1 Branches…
这里主要可以查看分支,切换分支,分支创建等操作
2.11.2 Tag…
tag就像里程碑标志的一个点,branch是一个新的征程的一条线;tag 是静态的,而branch要往前走;稳定版本备份用tag,新功能开发多人用branch,开发完之后再merge到master上。tag是一个只读的branch。
2.11.3 Merge Changes…
主分支:
dev分支:
下面我们需要把dev分支的代码合并到主分支中
正如上图所示,主分支选择合并本地的dev,还是远程的dev分支
本地合并完后,再push,这样主分支才真正合并了
正如上面所示,当合作开发项目时,有些人做好提交到master上合并了,而你自己在这一块也正好有些功能做了修改,即使你更新了最新的master,但合并的时候,就会报冲突了
2.11.4 Stash Changes…
后续再说
2.11.5 UnStash Changes…
后续再说
2.11.6 Reset HEAD…
2.11.7 Remotes…
主要是看远程仓库的url
2.11.8 Clone…
拷贝远程代码到本地
2.11.9 Fetch
如果你同事新建分支,这个时候自己idea看不到你要更新的分支,你需要git fetch 一下就能够看到了。
2.11.10 Pull…
更新本地仓库代码
2.11.11 Push…
更新远程仓库代码