使用 Git Extensions 简单入门 Git

使用 Git Extensions 简单入门 Git

—— 独立观察员 2015.11.25

前言

关于这个主题,之前我录了段视频教程,在本地看清晰度还可以,但传到优酷上就很不清晰了,即使是后来重制后还是一样不清晰,所以现在想整理成文字版。当然,大家还可以将我百度云上的视频下载下来观看,连同优酷的相关地址都附在文末了。

 

正文

说到 Git 呢,相信从事软件开发的都不陌生,是用于版本控制的,在全球范围内被广泛使用,相比于另一版本控制技术 ——SVN,似乎更受追捧一些,全球最大的代码托管平台 GitHub 使用的就是 Git 技术。

Git 与 SVN 的最主要的区别就是,Git 的代码仓库是分布式的,一般流程就是在本地拉一个服务器上仓库的拷贝,修改代码后先提交到本地仓库,然后再合并到远程仓库;而 SVN 的代码仓库是集中式的,一般就服务器上的一个,提交代码就是直接提交到服务器上的仓库去,这样如果网络不畅就无法提交了,那段时间就无法版本控制了。

还有一点比较明显的区别,不过我不知道我说的对不对,大家听且听之,自行判断。Git 由于有本地仓库,工作目录一般就在本地仓库那里,从文件角度上看不出两个分支的文件分别在哪里,似乎工作目录下同时只存在一个分支。而 SVN 则能够清晰地看到哪些是主干的文件,哪些是分支的文件。

长久以来,Git 都是以命令行方式使用的,而 SVN 在 Windows 上则有 TortoiseSVN 这样的强大的图形界面工具,这就形成了鲜明对比。对于刚入门的人,就会不由自主地偏爱上使用 TortoiseSVN 来使用 SVN,而对 Git 心生敬畏。其实 SVN 也是可以使用命令行来使用的,而 Git 近年来也有了图形界面工具,包括 TortoiseGit、msysGit(Git 版本控制系统在 Windows 下的版本)的 Gui、以及本文将要介绍的 Git Extensions 等。

我刚开始得知 Git Extensions 时,它是作为一款 Visual Studio 插件映入我眼帘的,在 Visual Studio 的插件库中可以下载,但好像好久没更新了(版本为 2.47.03)。后来(录完视频教程之后)我才发现原来其代码维护在 sourceforge 网站(版本为 2.48.05)。

 

一、现在我们来安装这个新版本(略去不重要的内容)

 

以下界面所示的三个工具,如果没安装过,则勾上让其安装。MsysGit 为 Git 的 Windows 版本,必须要安装;Kdiff 为对比 / 合并工具,可选安装,可以换为使用其它的相关工具;最后一个 Windows Credential Store for Git 用于在 Windows Credential Manager 中存储仓库的密码,这在老版本中没有,也安上吧。

 

安装 Git Extensions:

 

安装 KDiff3:

 

安装 Git:

 

将 Git 和一些 Unix 工具加入运行路径中:

 

跨平台项目不推荐选第三个,Windows 上推荐选第一个,所以就选第一个吧:

 

安装完成,Git Extensions 会弹出配置界面,如果有问题,一般就是选择一下相关组件的路径即可:

 

SSH 客户端,OpenSSH 是命令行的,PuTTY 是图形界面的:

 

二、接下来以使用 Git@OSC 网站为例

 

随便选个项目点击进入:

 

点击 Fork,即可克隆代码到自己的空间当中:

 

然后在自己的空间即可查看:

 

一般自己创建一个新分支:

 

保留原有的 master 分支不去使用:

 

因为点击那个双箭头的圈会强制从 fork 的源拉取代码来覆盖原有的分支:

 

可以更改默认分支、设置是否使用 SVN 来管理等:

 

配置分支保护,可将原有分支设为只读,避免自己提交代码时不小心弄混了:

 

复制代码路径:

 

在文件夹内右键,选择 "GitExt Clone…":

 

粘贴 url,然后分支我们先选 master 的,点击克隆:

 

然后可用 Pull 选项拉取代码到本地仓库:

 

View changes 选项可查看修改记录:

 

可以看到此时本地的 master 与远程(origin)是同步的:

 

使用 "Git Bash Here" 选项可打开一个专用的命令行窗口(Bash):

 

可直接以命令行方式使用(比如查看当前是哪个分支):

 

使用 Checkout branch… 功能可签出分支,这里我们将远程的 dlgcy 分支也迁出到本地:

 

这样本地就和远程一样也有两个分支了:

 

使用命令行也可看出:

 

使用 "GitExt Commit…" 选项可提交修改:

左上角区域放的是改动过的文件,点击紫色向下的箭头可载入单个文件或全部载入,载入到底下的提交区,右上角显示选中文件的改动内容,右下角填写改动信息,最后点击提交或提交并推送即可。

 

使用 Push… 选项可将本地仓库推送到远程仓库:

 

会要求输入(你在 oschina 网站的)用户名和密码:

 

切换分支就会切换代码,就有可能就会有不同了:

 

切成了 dlgcy 分支:

 

使用命令行提交更改:

 

使用命令行推送更改:

(由于之前将 master 分支设置为了只读,所以当时推送不成功;这次推送到 dlgcy 分支则是成功的。)

 

然后我们到网站上看一下,可以看到刚才的提交记录了:

 

此时查看本地的差异是这样的:

(因为本地 master 有修改和提交但未推送成功,本地 dlgcy 有修改和提交且推送成功)

 

附录

优酷地址:http://v.youku.com/v_show/id_XMTM2ODk0ODM2OA

百度云地址:http://pan.baidu.com/s/1kTzlC71

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/298280.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

各省地图都像些什么?

全世界只有3.14 % 的人关注了爆炸吧知识人们常说中国地图的形状像一只雄鸡,但具体到每一个省区则并没有一个明确的说法。看看下面这一套省区地图对应的有趣的想象,你觉得像还是不像?★安徽有人说安徽像一只斜倒挂着的蝙蝠,你能看出…

android 蓝牙各种UUID(转载)

android 蓝牙各种UUID ServiceDiscoveryServerServiceClassID_UUID {00001000-0000-1000-8000-00805F9B34FB} BrowseGroupDescriptorServiceClassID_UUID {00001001-0000-1000-8000-00805F9B34FB} PublicBrowseGroupServiceClass_UUID {00001002-0000-1000-8000-00805F9B34F…

Silverlight中摄像头的运用—part2

Silverlight 4 中摄像头的运用—part1将跟踪颜色视作输入 好了,我们能够跟踪到这个颜色了,那这么做的意义是什么呢?实际上,我们可以根据它的位置来移动东西。接下来的例子中,创建的一个球会跟随这个颜色一起移动。你可…

python静态变量和静态方法_python的静态成员变量、实例成员变量、静态方法、类方法、实例方法...

标签:静态成员变量(类变量)和普通成员变量(实例变量)静态成员变量只能通过类名.变量名获得,实例成员变量,通过该实例引用.变量名获得。在实例对静态成员变量赋值时,实例python是动态类型的语言,没有特别的标志区分静态…

同学,解决下这个 Bug!

一些解决 Bug 的小技巧大家好,我是鱼皮。学编程的过程中,我们会遇到各式各样的 Bug,也常常因为它们而感到头秃。但随着你不断解决 Bug、积累经验,就会发现其实解决 Bug 也是有套路的。今天分享下鱼皮自己总结的解决 Bug 套路&…

C#编写串口通信程序(转)

一.概述 在Visual Studio 6.0中编写串口通讯程序,一般都使用Microsoft Communication Control(简称MSComm)的通讯控件,只要通 过对此控件的属性和事件进行相应编程操作,就可以轻松地实现串口通讯。但在Micr…

pfsense下的流量管理(转)

http://www.pppei.net/blog/post/331 在作流量管理时,这些概念很重要,不要迷失。。 这里再对Limiter 的源地址和目的地址做个说明,因为limiter是被应用在Lan接口的Rule里,相对pfsense来说,用户发往 Lan口的流量为In&am…

如果给你一个亿,你想去干嘛?各专业的科研狗是这样回答的……

全世界只有3.14 % 的人关注了爆炸吧知识“如果现在给你一个亿,你想去做什么?”每天都被穷醒的小天一看到,立马展开了丰富的想象力:首先,当然少不了买买买,将一切之前想要的、不想要的,贵的、更贵…

Apache并发处理模块

apache 2.x版本目前有好几种并发处理模块, 需要在编译的时候通过–with-mpmxxx指定,常用的并发处理模式是prefork和worker。prefork这种模式比较古老,纯进程并发,没有线程,处理方式跟apache1.x是一样的,适用于那些没有…

头文件定义全局变量_5.2 C++局部变量与全局变量 | 输出局部全局变量

C局部变量C局部变量是指:在一个函数内部定义的变量,它只在本函数范围内有效,也就是说只有在本函数内才能使用它,在此函数以外是不能使用这些变量的。同样,在复合语句中定义的变量只在本复合语句范围内有效,…

java float转换成long_在Java中如何将float转换为long或int数据类型?

float f1.2f;double dDouble.parseDouble(String.valueOf(f));System.out.println(d);直接转换会设计到精度问题,所以需要借助字符串 保证不丢失数据www.shufadashi.com防采集。楼主您好,如果float是个整数,强制转换即可,可以捕捉…

Spark 1.2 发布,开源集群计算系统

2019独角兽企业重金招聘Python工程师标准>>> Spark 1.2 发布,此版本包括 172 位贡献者和超过 1000 个 commits。 此版本包括 Spark 核心操作和性能改进;添加新的网络传输子系统,进行了较大的改进;Spark SQL 引入了一个…

[转载].SSRAM、SDRAM和Flash简要介绍

转CalmBright兄的博文:http://www.cnblogs.com/CalmBright/archive/2009/07/19/1526569.html Abstract 在用NIos II 调试sdram遇到了其容量计算的问题,现介绍如下 Introduction 问题1:什么是DRAM、SRAM、SDRAM? 答:名词…

调整 Docker 中 nginx 的日志级别

调整 Docker 中 nginx 的日志级别Intro最近发现我们的一个应用产生了很多日志,而这些日志大多都是 nginx 的 access_log,我们默认会把标准输出收集到 es 里分析应用日志,但是很多都是 access_log 就可能会掩盖掉真实的错误日志,所…

Oracle B-Tree Index 原理

一. B-Tree Index 原理 官网说明: No index structure can satisfy all needs, but the self-balancing B-tree index comes closest to optimizing the performance of searches on large sets of data. Each B-tree node holds multiple keys and pointers. The m…

曾改变世界的最强科学,为什么我们对它的误解却越来越多?

古往今来,我们评价一个人有学识,总是形容:“上知天文下知地理”。也会要求一个人“读万卷书,行万里路”。美国认知心理学家Nora S. Newcombe认为:孩子常常看地图、爱看地图,能提高他们的空间想象力&#xf…

java语言程序设计一_java语言程序设计(一)-1

java 语言的特点是:强类型,制定了比较多的语言规范,尽可能在编译阶段检测出更多的错误及警告。编译和解释,首先将源代码编译成codebyte,运行时,java的运行系统装载和链接需要执行的类,并做必要的…

oracle 创建自增列及其oracle表的字段的子节点的查询

首先创建序列: create sequence 序列名 start with 1 increment by 1 nomaxvalue nocycle 其次创建触发器: create or replace trigger 触发器名 before insert on 表名称 for each rowbeginselect 序列名.nextval into:new.表的列名 from dual;end;…

多线程环境下,程序真是危机四伏

姿势在不断的更新迭代, 太卷了。你管这也叫线程安全?最近大意了,竟然想将《面试官:实现一个带值变更通知能力的Dictionary》一文中的临界锁只应用到写操作。内心旁白:读操作又不会修改数据,无论是新值还是旧…

眼见不一定为实!18个神奇的视错觉,看完不相信眼睛系列

全世界只有3.14 % 的人关注了爆炸吧知识来源:普象工业设计小站在家长时间网上冲浪总有时候感觉眼睛出了毛病不信,你看为啥这个明明是个三棱锥怎么突然变成了正方体我是“瞎”了么啊啊啊啊后来,去找了资料才发现这原来是一家幻觉博物馆的展品玩…