Git是一个免费的开放源码的分布式版本控制系统,用于处理从小到大的项目,速度和效率的一切。Git易于学习,具有闪电般快速的性能,占地面积小。它超越了像Subversion、CVS、Perforce和ClearCase这样的SCM工具,具有便宜的本地分支,便利的分段区域和多个工作流等功能。
Git gui则是Git的图形化操作界面,它使用更方便快捷,也不用记忆冗杂的命令,采用了分布式版本库的作法,不需要服务器端软件,就可以运作版本控制,使得源代码的发布和交流极其方便,有兴趣的朋友请下载使用。
功能特色
1、分支和合并
Git功能真正让它与几乎所有其他SCM分开,其分支模式。
Git允许并鼓励您拥有可以完全独立于彼此的多个本地分支。这些开发线的创建,合并和删除需要几秒钟的时间。
这意味着你可以做如下事情:
①无摩擦上下文切换。创建一个分支,尝试一个想法,提交几次,切换回分支的地方,应用补丁,切换回您正在尝试的地方,并将其合并。
基于角色的编码。有一个分支,总是只包含生产,另一个你合并工作进行测试,和几个较小的日常工作。
②基于特征的工作流程。为您正在处理的每个新功能创建新的分支,以便您可以无缝地在它们之间切换,然后在该功能合并到主线中时删除每个分支。
③一次性实验。创建一个分支进行实验,意识到它不会工作,只是删除它 - 放弃工作,没有人看到它(即使你已经推动其他分支机构)
值得注意的是,当您推送到远程存储库时,您不必推送所有分支。您可以选择分享您的一个分支,其中一个分支,或其中一个分支。这样做往往可以让人们尝试新的想法,而不用担心要计划如何和何时合并或者与他人分享。
有其他系统可以完成其中的一些工作,但涉及的工作要困难得多,容易出错。Git使这个过程变得非常简单,它改变了大多数开发人员在学习的时候工作的方式。
2、小而快
使用Git,几乎所有的操作都是在本地进行的,这给集中式系统带来了巨大的速度优势,这些系统不断与某个服务器进行通信。
Git被建立在Linux内核上,这意味着它必须从第一天有效地处理大型存储库。Git是用C编写的,减少了与更高级语言相关的运行时间的开销。从一开始,速度和性能一直是Git的主要设计目标。
3、分散式
任何分布式SCM(包括Git)的最佳功能之一就是分发。这意味着,不要对源代码的当前提示进行“检出”,而是对整个存储库进行“克隆”。
①多个备份
这意味着即使您使用集中式工作流程,每个用户本质上都具有主服务器的完整备份。在发生崩溃或损坏的情况下,可以将这些副本推送到主服务器。实际上,除了只有存储库的一个副本,Git没有单点故障。
②任何工作流程
由于Git具有分布式的性质和卓越的分支系统,可以相对容易地实现几乎无数的工作流程。
③Subversion样式工作流程
集中的工作流程非常普遍,特别是从集中式系统转型的人员。如果有人自上次提取以来,Git不会推送,所以所有开发人员推送到同一服务器的集中式模式工作正常。
④集成管理器工作流程
另一个常见的Git工作流程涉及一个集成管理器 - 一个承诺到“保佑”存储库的人员。然后,许多开发人员从该存储库克隆,推送到他们自己的独立存储库,并要求集成商提取其更改。这是开放源代码或GitHub存储库经常看到的开发模式的类型。
⑤独裁者和中尉工作流程
对于更大规模的项目,像Linux内核的开发工作流通常是有效的。在这个模型中,有些人(“中尉”)负责项目的一个特定子系统,并且在与该子系统有关的所有变化中进行合并。另一个整合者(“独裁者”)可以从他/她的中尉中抽出变化,然后推到“保佑”的存储库,然后每个人再次克隆。
4、数据保证
Git使用的数据模型确保项目每一位的加密完整性。每个文件和提交都被检出并被检出,并在检出时被检出。除了您提供的确切位置之外,不可能从Git中获得任何东西。
在Git存储库中更改任何文件,日期,提交消息或任何其他数据也是不可能的,而不更改其后的所有ID。这意味着如果你有一个提交ID,你可以放心,不仅你的项目是完全一样的,当它被提交,但它的历史没有改变。
大多数集中版本控制系统默认情况下不提供这样的完整性。
5、分期区
与其他系统不同,Git有一些称为“暂存区”或“索引”的东西。这是一个中间区域,可以在完成提交之前格式化和审核提交。
将Git与其他工具分开的一件事是,可以快速执行一些文件并提交它们,而无需提交工作目录中的所有其他修改的文件,或者必须在提交期间在命令行中列出它们。
这允许您仅对已修改文件的部分进行分段。在您意识到您忘记提交其中一个文件之前,对文件进行两个逻辑上无关的修改的日子已经过去了。现在,您可以对当前提交所需的更改进行调整,并对下一次提交进行其他更改。此功能可根据需要扩展到您的文件的许多不同的更改。
当然,如果您不想要这种控件,Git也可以轻松忽略此功能,只需在commit命令中添加一个“-a”,以便将所有文件的所有更改添加到暂存区域。
6、自由和开源
Git是根据GNU通用公共许可证版本2.0发布的,这是一个开源许可证。Git项目选择使用GPLv2来保证您自由分享和更改免费软件,以确保所有用户免费使用该软件。
Git gui使用教程
1、在本地新建一个文件夹test,选中后点击右键,选择Git GUI Here,出现下图,选择第二个,克隆已经存在的仓库
2、填写Source Location(源地址)和Target Directory
3、完成克隆:
点击上图的clone后,会提示下输入你github的用户名和密码,出现下面的界面,克隆完成。你可以看看你本地克隆的文件。
更新日志
Git gui v2.28.0.1更新日志:
1、在内置的rebase/stash命令中修复了几个角盒错误
2、GITGC(已经引入到v2.19.0中)中偶尔出现的崩溃已经得到修复
v2.18.0更新:
1、新功能
配有Git v2.13.1
配有Git Credential Manager v1.10.0
附带OpenSSH 7.5p1
配有Git Flow v1.11.0
配有Git LFS v2.1.1
Git 现在使用Windows 10创建者更新引入的标志来创建符号链接,而不需要在开发人员模式下提升权限
2、Bug修复
Git for Windows的几个配置文件的文档得到了改进
通过按Ctrl + C中断Git Bash中的Git进程,Git现在.lock按照设计移除文件(附带Git PR ;这也应该解决问题#338)
git status -uno 现在正确地对待忽略目录中的子模块进行处理
fscache功能在大型工作组中不再减慢git commit -m
执行git.exe在Git中的Bash在当前工作目录是UNC路径现在将按预期
通过Ctrl + C在Git GUI中分段/分页多个文件现在可以工作
在Git GUI中按Ctrl + T进行文件排列,但文件列表为空时,Git GUI 不再显示异常窗口