使用Git Extensions简单入门Git

2023-11-08

前言

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

 

正文

说到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有修改和提交且推送成功)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用Git Extensions简单入门Git 的相关文章

随机推荐

  • Linux系统编程之TCP网络编程模型

    Linux TCP网络编程模型示例 客户端代码示例 include
  • Intellij IDEA 生成Get/Set方法快捷键

    1 选中你要创建getter setter的字段 然后选择generator 可以拖选住你想要生成get set方法的属性 点击完成即可自动生成get和set方法 菜单栏 gt generator 或者 点击右键 gt generator
  • Ubuntu系统为程序创建桌面快捷方式

    为了不用每次都要进入命令行启动应用程序 为程序创建快捷方式是一个很方便的方法 尤其是你的程序需要在团队外部使用的时候 桌面创建快捷方式一般使用 desktop为后缀的文件实现 该文件的内容格式基本要素如下 Desktop Entry Nam
  • 【C++】 应用指针,编写一个函数strcmp()实现两个字符串s1和s2的比较。如果s1=s2,则返回值为0,如果s1不等于s2,返回它们两者第一个不同的字符的ASC II码差值,并且若s1>s2,

    include
  • 快速开发 jQuery 插件的 10 大技巧(转)

    1 把你的代码全部放在闭包里面 这是我用的最多的一条 但是有时候在闭包外面的方法会不能调用 不过你的插件的代码只为你自己的插件服务 所以不存在这个问题 你可以把所有的代码都放在闭包里面 而方法可能应该放在Prototype方法内部 我们后面
  • MySql进阶-间隙锁(gap-key)

    文章目录 Innodb锁算法 关闭Gap Lock Gap key 解决的问题 间隙锁影响 MVCC 核心原理 ReadView 可参考 快照读 当前读可参考 参考 InnoDB存储引擎 注意 gap key是innodb存储引擎来解决当前
  • RK3568虚拟机基础环境搭建之更新源、安装网络工具、串口调试、网络连接、文件传输、安装vscode和samba共享服务

    镜像下载 域名解析 时间同步请点击 阿里云开源镜像站 前言 开始搭建RK3568的基础虚拟机 具备基本的通用功能 主要包含了串口工具minicom 远程登陆ssh 远程传输filezilla 代码编辑工具vscode 虚拟机 文档对对虚拟机
  • a later version of node.js is already installed. Setup will now exit.

    背景 Window想要彻底删除node js安装包 并重新安装新的安装包 操作 彻底删除步骤可以参考 https www cnblogs com fighxp p 7410235 html 结果 在执行完上面步骤操作后 在重新安装时仍报 a
  • C/C++编程笔记:C++中的stringstream及其应用

    stringstream将字符串对象与流相关联 使您可以像从流中读取字符串一样 例如cin 基本方法是 clear 清除流 str 获取并设置其内容存在于流中的字符串对象 运算符 lt lt 将字符串添加到stringstream对象 运算
  • 超详细的集合(set)

    集合 1 定义 由一系列不重复的不可变类型变量组成的可变映射容器 相当于只有键没有值的字典 键则是集合的数据 集合是无序的 所以输入的次序与显示的次序可能不一致 2 基本操作 2 1集合的创建 1 创建空集合 创建空集合 不能直接用 因为系
  • springboot连接mybatis

  • Python数据类型之元组及字典

    元组 tuple 元组表现形式tuple 元组是一个不可变序列 使用 创建元素 元组不是空元组至少有一个 逗号 当元组不是空元组时括号可以省略 元组解包指将元组当中的每一个元素都赋值给一个变量 使用 创建的 my tuple 创建一个空的元
  • idea解决控制台中文乱码问题

    前言 IntelliJ IDEA 如果不进行配置的话 运行程序时控制台中文乱码问题会非常严重 严重影响我们对信息的获取和程序的跟踪 特总结以下 4 点用于解决控制台中文乱码问题 希望有助于大家 注意 下面根据我日常工作的经验总结 排序的先后
  • SpringBoot默认的JSON解析方案

    一 什么是JSON JSON JavaScript Object Notation 是一种基于JavaScript语法子集的开放标准数据交换格式 JSON是基于文本的 轻量级的 通常被认为易于读 写 好了 废话不多说 下面开始介绍如何在Sp
  • Java_.jar .war .ear 详解

    jar 全称 java archive 包含 class properties文件 是文件封装的最小单元 部署文件 application client xml 级别 小 war 全称 web archive 包含 Servlet JSP页
  • Tomcat和Weblogic的区别

    接触到两种Java的web服务器 做项目用的Tomcat 看视频看的是WebLogic Server WLS 都是web服务器 有什么区别和联系呢 一 先简单介绍一下这两种服务器 WebLogic是美国bea公司出品的一个applicati
  • webpack实战,手写loader和plugin

    序言 对于 webpack 来说 loader 和 plugin 可以算是需求程度最为广泛的配置项了 但是呢 单单止步于配置可能还不够 如果我们自己有时候想要 diy 一个需求 但是 webpack 又没有相关的 loader 和 plug
  • 移动端unet人像分割模型--1

    个人对移动端神经网络开发一直饶有兴致 去年腾讯开源了NCNN框架之后 一直都在关注 近期成功利用别人训练好的mtcnn和mobilefacenet模型制作了一个ios版本人脸识别swift版本demo 希望maskrcnn移植到ncnn 在
  • MySQL 数据库崩溃(crash)的常见原因和解决办法

    墨墨导读 本文来自墨天轮用户投稿 详述MySQL 数据库崩溃 crash 的常见原因和解决办法 希望对大家有帮助 数据技术嘉年华 十周年盛大开启 点我立即报名 大会以 自研 智能 新基建 云和数据促创新 生态融合新十年 为主题 相邀数据英雄
  • 使用Git Extensions简单入门Git

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