博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Git使用具体解释】Egit的经常使用操作具体解释
阅读量:7071 次
发布时间:2019-06-28

本文共 1199 字,大约阅读时间需要 3 分钟。

经常使用操作


操作

说明

Fetch

从远程获取最新版本号到本地,不会自己主动merge

Merge

能够把一个分支标签或某个commit的改动合并如今的分支上

Pull

从远程获取最新版本号并merge到本地相当于fetch+merge

Push

将本地分支的更新。推送到远程主机

Merge tool

当你的代码产生了冲突能够通过此工具高速的对照

Switch to

将当前分支切换到其他分支或标签

Commit

将更改提交到本地库中

Rebase

Reset

将当前分支切换到本分支曾经的不论什么一个版本号状态,即所谓的“回溯”

EGit的恢复版本号功能与使用Git Reset命令一样,而恢复的方式又分为Soft、Mixed、Hard三种:

•Soft:恢复到前面版本号,保留文件变更内容。且将已变更的全部文件加到准备区(Staging Area)。
•Mixed:恢复到前面版本号,保留全部已变更文件的变更内容。

•Hard:恢复到前面版本号。不保留全部已变更文件的变更内容。

Untrack

将已经加入到版本号控制的文件取消监视,及不再对其进行版本号控制

Ignore

忽略指定的文件或目录,此功能用在还没有进行版本号控制的文件上

Compare with

此功能同意你将当前文件和指定时期的文件进行对照

 

经常使用操作对照


BranchTag的差别:

tag多用于建立里程碑。比方开发达到某中程度,公布某个版本号,如V1.0。能够使用tag标注。

这样。以后对于程序版本号号就能够找到相应的代码状态。并进行build等操作。

理论上,tag作为里程碑的镜像存储。应该是仅仅读的才对。

相比,branch是project须要并行开发不同版本号而创建的。如一个原型项目完毕后。可能有不同的客户购买并定制,于是就须要在这个原型上构建两个独立的开发库,各自并行开发不同客户的须要。这样,branch能够是进程中的project,并且之后会不断改动的。

由此,能够看出tagbranch的区别。tag更重要的是记录某个里程碑,仅仅是希望得到那个状态时的代码状态,这对bug的确认和查找非常实用处。而各个branch之间是能够肆意各自的修改,互不相干的。branch上也能够有自己的tag

MergeRebase的差别:

以下通过一个实例来解说一下两种方式的差别:

如果原先有A,B,C三个提交记录

A-B-C

开发人员提交了D,开发人员 Ed提交了E

A-B-C-D-E

以下使用MERGEREBASE两种方式分别对代码进行合并

MERGE方式:

A-B-C-D-E-M

这时DE的提交仍然在这,可是我们创建了一个新的提交记录M。此时的状态图成了一个菱形,这让非常多人看起来非常混乱。

REBASE方式:

A-B-C-D-E-R

从上图能够看出这样的方式创建了提交R,这时的内容和M实际上是同样的。

可是这时没有了E。所以整个提交记录是看起来是一条线。

推荐阅读:

你可能感兴趣的文章
Groovy闭包深入学习 - [203] 一直都有新高度 - ITeye技术网站
查看>>
[C#]DataTable常用操作总结【转】
查看>>
JdbcTemplate查询数据 三种callback之间的区别
查看>>
GBK
查看>>
Linux的nm查看动态和静态库中的符号
查看>>
hrbeu 哈工程 Who Is In Front of Me
查看>>
Linux命令行下常用svn命令
查看>>
一个form中对应多个动作
查看>>
注意!ASP.NET MVC 3 的一个 OutputCache 问题
查看>>
androidalertDialog无法显示按钮的bug
查看>>
跟我一起学习ASP.NET 4.5 MVC4.0(四)
查看>>
时钟周期/指令周期/机器周期/总线周期
查看>>
Python 开发者应该知道的 7 个开发库
查看>>
mysql索引之九:重复索引和冗余索引,索引和锁
查看>>
魔方阵
查看>>
【其他】对于本科毕业论文想说一些话
查看>>
调试core文件
查看>>
java中的IO操作总结(三)
查看>>
【JAVA学习笔记】个人设定
查看>>
extern"C"
查看>>