Git管理工具对比(GitBash、EGit、SourceTree)

GitBash是采用命令行的方式对版本进行管理,功能最为灵活强大,但是由于需要手动输入希望修改的文件名,所以相对繁琐。

EGit是Eclipse的Git插件,最为纠结的一个软件,因为开发时直操作很方便,尤其是有svn开发情节的人更热衷于这样,不过EGit中有很多bug和不人性化的东西,让人吐血,所以

一句话EGit并不能解决所有Git问题,开发时必须部分依赖于其他Git管理工具。一会一一列举。

SourceTree是最近应用的一个软件,一句话概括,既有GitBash的命令行,又有EGit的图形化管理,用户界面很人性化,Eclipse+GitBash完全可以应付版本管理。

那么下面我结合项目中开发遇到的问题一一讲解一下:

)。

图(1)

B. 然后再次修改,发现下面的工作区中也有这个页面了(图2)。

(图2)

C. 现在就可以对此文件进行丢弃了,如果将下面文件丢弃(checkout),那么该文件将变为缓冲区中的文件,如果将缓冲区文件丢弃,实际上回到了最近的commit版本了(reset操作)。

这里注意,如果该文件commit了,那么checkout实际上回不到commit之前的版本的,需要reset。下面详细介绍一下reset命令。

(5) 对于reset功能的应用。这里先普及一下Git理念的事:

A. 明确一点,每一次commit都是对应着一批操作而不是对应一个文件。

这点和SVN的设计理念完全不一样。

这也造成了一个必然的结局:SVN的分支存的是一个工程,所以每签出一个分支实际上都是签出一个工程。

而Git的分支存的是修改的记录,所以每签出一个分支,实际上都是对原工程的一次覆盖。

B.在开发过程中大家可能会遇到这样一个问题:Pull之后,会出现很多别人提交的代码需要你本地再重新提交一次,那么这个原因是这样的,当然这个是我个人的理解:Git会把每一次pull结果做两个处理:

B1.如果pull之后,本地没有任何问题,那么不需要再次提交别人修改的东西了,只需要继续你的修改,push就可以了(正常情况下一版都是这样)。

B2.如果pull之后,本地有问题,大部分情况是冲突的情况,那么Git会把本次当做一次不成功的pull(那么通俗的来讲,git会认为,你认为不成功,那么你把这次版本按照你的想法改一下,再提交吧),所以你做完删减之后,需要把刚才别人的东西再提一次作为一个新的commit。

(6) 对于checkout某一次提交,SourceTree也很人性化,会给出很人性化的提示。注意checkout之后,你的工程当前不属于任何分支,不过可以基于此重新创建一个分支,很方便。

总结一下:这里只列出了一些关键的问题和不同点,当然工具的选择因人而异。大家可以在工作中慢慢体会,如果有问题欢迎大家提出,给我宝贵的意见。(待续)

Git管理工具对比(GitBash、EGit、SourceTree)的更多相关文章

  1. Git管理工具对比(GitBash、EGit、SourceTree)(转载)

    Git管理工具对比(GitBash.EGit.SourceTree) GitBash是采用命令行的方式对版本进行管理,功能最为灵活强大,但是由于需要手动输入希望修改的文件名,所以相对繁琐. EGit是 ...

  2. GitBash、EGit、SourceTree三个Git管理工具对比

    Git管理工具对比(GitBash.EGit.SourceTree) GitBash是采用命令行的方式对版本进行管理,功能最为灵活强大,但是由于需要手动输入希望修改的文件名,所以相对繁琐. EGit是 ...

  3. Git版本管理工具对比(GitBash、EGit、SourceTree)

    Git管理工具对比(GitBash.EGit.SourceTree) GitBash是采用命令行的方式对版本进行管理,功能最为灵活强大,但是由于需要手动输入希望修改的文件名,所以相对繁琐. EGit是 ...

  4. Git管理工具对照(GitBash、EGit、SourceTree)

    Git管理工具对照(GitBash.EGit.SourceTree) GitBash是採用命令行的方式对版本号进行管理,功能最为灵活强大,可是由于须要手动输入希望改动的文件名称,所以相对繁琐. EGi ...

  5. Git 管理工具 基本用法

    git管理工具基本操作命令: 1. 提交 git push origin dev 2.拉取分支: git pull 3.创建并转换分支: git switch -c dev; 4.直接切换到已有分支: ...

  6. 敏捷开发系列学习总结(4)—Git管理工具sourcetree的安装

    现在代码管理都流行用git了,小编以前用过clearcase, svn,vss等.现在用了git后,发现git才是最好的,我觉得它最吸引人的地方应该是它的分布式管理吧.git的具体学习,读者可自己去网 ...

  7. git管理工具的使用教程

    Git入门教程 1.   概述     对于软件版本管理工具,为什么要选择Git?      你真正学会使用Git时, 你就会觉得这个问题的回答是非常自然的.然而当真正需要用文字来回答时,却觉得文字好 ...

  8. Java的Git管理工具Gitblit

    From:http://www.oschina.net/p/gitblit Gitblit 是一个纯 Java 库用来管理.查看和处理 Git 资料库.相当于 Git 的 Java 管理工具. 下载地 ...

  9. Docker可视化管理工具对比(DockerUI、Shipyard、Rancher、Portainer)

    1.前言 谈及docker,避免不了需要熟练的记住好多命令及其用法,对于熟悉shell.技术开发人员而言,还是可以接受的,熟练之后,命令行毕竟是很方便的,便于操作及脚本化.但对于命令行过敏.非技术人员 ...

随机推荐

  1. springboot集成redis(mybatis、分布式session)

    安装Redis请参考:<CentOS快速安装Redis> 一.springboot集成redis并实现DB与缓存同步 1.添加redis及数据库相关依赖(pom.xml) <depe ...

  2. Windows10下配置python的环境变量

    从官网下载Windows下的python版本,一路按照默认进行安装. 安装之后配置环境变量的步骤如下: 1,点"我的电脑",右键选"属性". 2,选择" ...

  3. chrome 如何卸载干净

    安装位置C:\Users\你电脑的用户名\AppData\Local\Google,删除整个文件夹,用CCleaner扫描注册表删除无用注册表项,重启安装即可.

  4. sql 复习练习

          一.基础1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql server--- ...

  5. 转:window与linux互相拷贝文件

    window与linux互相拷贝文件   借助 PSCP 命令可以实现文件的互拷:     1.下载pscp.exe 文件 (我的资源文件中有)   2.如果想在所有目录可以执行,请更改环境变量. w ...

  6. 进程间通信——XSI IPC之消息队列

    进程间通信XSI IPC有3种:消息队列.共享内存.信号量.它们之间有很多相似之处,但也有各自的特殊的地方.消息队列作为其中比较简单的一种,它会有些什么东西呢,来一起探讨探讨.. 消息队列结构 消息队 ...

  7. 实验与作业(Python)-05 程序的控制结构

    推荐完成顺序: 1->2->3->4.1->4.4->5->4.5->4.7->6 截止日期 下次实验课之前 实验目标 if-elif-else 循环: ...

  8. Java语言程序设计-Markdown格式作业模板

    Markdown格式作业模板如下,大家可以直接复制粘贴使用. 注意:作业中不能只写答案,题目本身也要出现.. # 1. 本章学习总结 你对于本章知识的学习总结 # 2. 书面作业 **Q1 java ...

  9. ThreadLocal深入剖析

    JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路.使用这个工具类可以很简洁地编写出优美的多线程程序,Threa ...

  10. Android简易实战教程--第三十五话《音乐播放》

    已经好几天不更新博客了,今天轻松一点模拟个简单的"音乐播放器".1分钟看完~ 整个简单布局,加几个控制按钮: <LinearLayout xmlns:android=&quo ...