纯GUI版的Git教程(一)-----Git提交与查看

本文提供了一份纯GUI操作的Git教程,适用于Windows平台。教程详细介绍了如何安装Git、初始化版本库、提交代码、查看提交记录、添加忽略文件及修改提交信息等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

看到网上很多关于Git的教程都是使用命令行的,各种参数实在令人眼花缭乱。对于我这个平时在单位

仍然使用svn,只是业余时间使用一下git的菜菜程序员,真是头疼。每隔一段时间用Git和Github的都

需要重新学习一遍相关命令。

命令虽然用熟了特别省事,但是不容易上手呀。

因此,我有现在这个想法,就是写一版纯 GUI版的Windows下的Git教程。除非迫不得已才考虑使用命令行,

否则一切都用GUI实现。

 

通过本篇,你可以实现:

  1. Git的安装
  2. 建立(初始化)一个Git版本库
  3. 提交
  4. 查看提交记录
  5. 添加忽略文件
  6. 修改上次提交

 

Git安装

网址在这里:https://git-for-windows.github.io/

 

 

下载下来就可以正确使用了。、

 

安装的时候,各种选项,选默认的就好。

遇到问题上网再查吧,反正以后还可以修改。

 

 

本地使用Git提交commit

关于Git本身就可以讲一本书了。这里只介绍界面操作Git。

 

初始化Git版本库

在任意目录下新建一个文件夹,名称为HellWorld,作为我们的测试仓库。

 

在资源管理器的任意位置(比如桌面),右键,选中"Git Gui Here"。进入Git的GUI操作界面

 

 

接下来会弹出下面的界面,选择"Create New Repository",用来创建新的Repository。

 

这里稍稍解释一下什么是Repository。中文件名一般叫作版本库或者是仓库,其实啊说白了就是一个我们编写代码的一个根目录。这个目录中的所以文件都被git管理,不管你做什么操作都会被记录,包括:增加、删除、修改文件等,都会被记录下来,以便后来跟踪与修改相关记录,甚至被还原。

 

另外,注意这个界面下面,还有一个"Open Recent Repository"的选项,用来显示最新使用的仓库列表,因为我已经新建了一个仓库,所以它会被显示在其中。

平时,我们也可以使用这个界面方便打开我们常使用的仓库。

 

 

 

在弹出的界面中填入选中的目录。点击"Create"按钮。

 

然后会进入一个初始的提交界面,因为我们还没有在项目中新建相关资料,所以就不需要了操作了。直接关闭这个界面即可。这个界面每次提交的时候都会出现,后面我们还会说细介绍这个界面。

 

 

到这里,我们的初始化仓库的工作就已经做完了。那么Git初始化仓库到底做了什么工作呢?Git是如何管理仓库中的相关信息呢?我们进入HelloWorld目录看一下究竟,这里需要打开"文件夹选项"中的"显示隐藏文件"的设置。不了解的同学,可以上网查一下对应的Windows系统中,如何显示隐藏文件。

打开后,从下面的图中,我们可以看到Git在HelloWorld目录下创建了一个隐藏的.git文件夹,仓库的所有版本管理的信息都存储在这个文件夹中。

但是需要注意的事,git与svn不同。Svn会在管理仓库的每个子目录下都创建.svn目录,用来记录信息,但是git只会在仓库的根目录创建.git,不会在每个子目录中创建.git。

 

 

扩展阅读:

对于充满好奇心的同学,还可以点开.git文件。看看里面究竟有些什么。虽然我们现在还是菜菜鸟,

但是当某一天,我们把这个文件中内容都搞清楚,知道Git是如何工作的,就是一个真正的git高手了。

每个文件是做什么用的,我自己也没有搞明白,只知道那个config文件比较有用,是纯文本文件,可以编辑。进行一些git的版本库的配置。

欢迎大家补充。当然,我也在慢慢研究。

 

第一次提交

我们在HelloWorld目录下新建一个main.R文件,用R Studio打开(或者用记事本,并没有什么区别),并在其中输入一些简单的代码,代码如下:

x <- 1:10

print(x)

 

 

下面进行第一次提交。

 

进入HelloWorld目录,右键单击空白区域。在菜单中选择"Git GUI Here",然后会进入下面的界面。

 

 

Staged:英文解释是,被组织的。

组织(活动或仪式) If you stage an event or ceremony, you organize it and usually take part in it.

我查到这个解释,感觉也不是很贴切。

总之,一个文件修改后,只有修改为Staged状态,才能被提交。

 

点击Stage Change,会将所有的修改文件都加入提交缓存区。也可以分别双击需要加入缓存区的文件。

添加完成后会是这样的。

 

 

 

 

 

其中

  1. Rescan按钮,就是重新扫描,如果你提交期间代码在外部作了更改,就需要重新扫描一下,得到最新的状态,以便提交。
  2. 第二个按钮,已经说过了
  3. sign off按钮,会自动将您的相关信息输入到提交框中。但是git本身也会跟踪记录每次修改的作者,所以,这个目前也不是特别有用了。
  4. commit,这个是最重要的按钮,就是确定这次提交
  5. push,当你建立了远程仓库(比如在Github上)会将本地的仓库的修改和修改记录都推送到远程仓库上。当然当提是你需要有远程仓库,我们在后面讲Github的时候,会讲这个问题。

 

上面每个按钮,都有对应的快捷键,当你更加熟练Git的原理后,就可以考虑使用快捷键实现。

 

这里尤其要介绍一下Ctrl+T键,它是一个开关键,可以针对某个文件进行操作。在Unstaged Changes区,选中一个文件,然后按Ctrl+T,就可以将其添加到Staged Changes区。而在Staged Changes区选中一个文件,按下Ctrl+T,又可以将其取消。

如果不选中文件,直接按Ctrl+T会将所有文件添加到缓存区,或者将缓存区的所有文件取消添加。

 

由于添加到缓冲区是一个特别常用的操作,所以,当你经常要提交时,试着学习一下

Ctrl+T

Ctrl+I

Ctrl+U

这三个键的使用,会很好的提高你的工作效率。

 

当然,最后的Ctrl+Enter键,完成提交,也很好用哦。这样就不用每次去点那个commit按钮了。

 

总之,点击commit,就可以完成第一次提交了。

 

第二次提交

我们再在main.R源文件中添加一些代码:

 

require(ggplot2)

data(diamonds)

head(diamonds)

 

再次提交

 

 

注意,前面,我们没有讲到的提交界面的一个大区域是右上角的那个区域,这个区域由于我们第一次提交时,没有选中文件,所以没有显示出来内容。只要我们选中文件,无论是Unstaged区域还是Staged区域的文件,都会显示这个文件的变化。

 

其中,浅绿色表示添加,粉色的表示删除(这里没有删除,所以没有显示)。

 

最前面一行的,那个 -1,2,+1,6我还没有研究明白。

只知道2,6大概表示修改前后的文件的行数。

 

查看提交的记录

前面已经进行了两次提交,那么如何查看所有的提交记录呢?以及如何查看每次提交都修改了哪些文件呢?

点击Repository菜单下在 Visualize master's History或者All Branch history即可查看。

 

 

 

 

添加了忽略文件

现在已经进行了两次提交,下面关闭R Studio,你会发现生成了两个临时文件。一个是.RData一个是.Rhistory。这两个文件。

(如果你不是使用RStudio,随便建两个文件就好,名字以.开头在Windows下面比较麻烦,所以,名字也可以不以.开头)

 

其中.RData存放的工作空间的变量值。

而.Rhistory存储的是你上次在RStudio中执行过的命令列表。

这两个文件都是不需要提交的,那么如何将其添加到忽略列表,使每次commit的时候,不要显示它们的更改。

 

 

这里需要在当前目录下建一个文件,文件名称为".gitignore",这个文件开头是"."所以,直接用Windows菜单新建文本文件,然后重命名,是不可以的,会出现以下提示:

 

在Windows下建立以点开头的文件有很多种方法,最简单的一种就是,在命名时,在末尾也添加了一个点。像下面这样:

然后就建好了。

 

用记事本或者其他的文本编辑器打开刚刚新建的的.gitignore文件,在其中输入

.RData

.Rhistory

保存,关闭。

注意,要每行写一个,不要写到同一行哦。

 

然后,再提交,看看发生什么。

 

这回没有前面那些需要忽略的文件的文件了。

关于.gitignore文件,不只可以指定单个文件,它还可以添加通配符,比如:

*.docx

*.html

等等,还有一些其他的写法,这里就不先不介绍了。后面,我可以开一个帖子专门讲这个问题。

 

 

添加完成提交消息,并将修改文件添加到缓存区,就可以commit了(记着按新学会的Ctrl+Enter快捷键哦)。

有快捷键,用GUI效率也没有那么低,呵呵。

 

最后,再在Repository菜单->Visualize master's history中,看看我们提交版本信息。

修改上次提交信息

在提交界面中,我们有一个选项还没有讲,那就是"Amend last commit"即,修改上次的提交。据说,这个也是Git比svn更人性化的一个地方,有更多的后悔药卖。

还是进入commit界面(记着右键+g键哦),选中"Amend last commit"前面的单选项。如下图所示:

 

看看发生了什么?上次提交的信息全部又重新展现出来了。

可以完全的修改上次的提交,这里我们只修改一下commit Message。在后面添一句说明。

 

添加完成后,commit。

 

最后,再看看我们所有的提交信息,还记得在哪个菜单吗?Repository菜单->Visualize master's history中。

 

看到了没有,我们的commit还是三个,但是第三个提交的信息已经改变了。已经在后面添加了一句话。

06-10
<think>首先,用户的问题是关于GUI库的信息或推荐,具体是“推荐些流行的GUI库或者介绍GUI库的使用方法”。系统指令要求我必须使用中文回答,结构清晰,帮助用户逐步解决问题,并确保回答真实可靠。用户提供了四个引用:-[1]:Guilib库,个在VC6环境下的图形界面库。-[2]:wxPython,个跨平台的GUI工具集。-[3]:Qt库的对比,强调简单易学。-[4]:PyQt5的HelloWorld示例。用户说这些引用仅供参考,并不是用户真正的需求,我需要参考用户上次的问题和我的回答。用户的历史消息是:“我想寻找关于GUI库的相关信息或推荐请问推荐些流行的GUI库或者介绍GUI库的使用方法”。用户没有提供上次的对话历史,只有系统设置和当前消息。系统设置说“参考用户上次的问题和你的回答”,但用户的上次消息就是这个问题,所以没有历史上下文。我应该基于提供的引用和这个问题来回答。系统指令还要求:-行内数学表达式用$...$(可能不适用于此主题,因为GUI库不是数学相关)。-独立公式用$$...$$(同样不适用)。-LaTeX语法正确(但这里可能不需要LaTeX,因为主题是编程)。-使用中文回答。-生成相关问题。-回答中引用的段落末尾自然地添加引用标识,如[^1]。-在末尾添加“§§相关问题§§”部分。结构我的回答:1.**开头**:清晰回应用户问题。2.**主体**:-介绍流行的GUI库。-基于引用推荐些库。-简要介绍使用方法(因为引用中有示例)。3.**结尾**:自然地添加引用。4.**生成相关问题**:在末尾添加个“§§相关问题§§”部分,列出相关问题。推荐的流行GUI库:-从引用中:-[1]:Guilib(针对VC6,Windows专用)。-[2]:wxPython(跨平台)。-[3]:Qt(跨平台,C++,但也有Python绑定如PyQt)。-[4]:PyQt5(Python绑定的Qt)。-其他流行的库:Tkinter(Python内置)、Kivy(跨平台)、JavaSwing/AWT(Java)、Electron(JavaScript)、Flutter(Dart)等。但由于引用有限,我应该优先基于引用。-[^2]提到wxPython。-[^3]提到Qt。-[^4]是PyQt5示例。-用户引用主要涉及Python相关库(wxPython,PyQt5),但[^1]是VC6/C++相关的Guilib。用户可能偏向于PythonGUI库,因为引用[2]和[4]都是Python相关的。引用[3]讨论Qt(C++,但PyQt在Python中使用)。引用[1]是C++相关的。推荐些库:1.**基于引用**:-Qt/PyQt/QtforPython:跨平台,强大。-wxPython:跨平台,使用本地组件。-Guilib:特定于VC6环境,可能较旧。2.**其他流行选项**:-Tkinter:Python内置,简单。-Kivy:现代,支持触摸屏。-PyGame:虽然不是GUI,但也用于图形界面。3.**介绍使用方法**:提供简单示例,如[^4]中的PyQt5代码。为了结构清晰:-**步骤1:推荐流行GUI库**。-**步骤2:简要介绍每个库的特点和适用场景**。-**步骤3:给个使用方法的简单示例**。确保回答真实可靠:基于常识和引用;Qt,wxPython,Tkinter确实流行。引用标识:在提及引用内容的段落末尾添加[^n],如提到引用[4]的例子时加[^4]。生成相关问题:-如系统示例,列出几个相关问题。-主题相关:如比较不同GUI库、学习资源、进阶使用等。最终回答结构:1.开头回应。2.主体部分分点介绍。3.示例代码块(如果需要)。4.结尾带相关问题。</think> ### 推荐的流行GUI库及使用方法简介 针对您的需求,我来介绍些流行的GUI库及其基本使用方法。GUI库用于开发图形用户界面程序,选择库时需要考虑跨平台性、语言支持、学习曲线等因素。以下是基于常见开发场景的推荐库,部分内容参考了您提供的引用,包括Guilib库(特定于VC6环境),以及主流跨平台库如wxPython和Qt(PyQt本)[^1][^2][^3][^4]。我会以结构化的方式逐步介绍,帮助您快速入门。 #### 步骤1: 推荐流行的GUI库 以下是当前最受欢迎的几个GUI库,按语言环境和适用场景分类。每个库都有其优势,推荐基于您的开发语言和需求选择: - **Qt (或 PyQt/PySide for Python)**: - **特点**: 跨平台(支持Windows、macOS、Linux等),功能强大,封装良好,学习曲线平缓。它使用本地组件渲染界面,确保应用在不同平台上有原生外观和性能。Qt库包含丰富的GUI工具、网络和数据库模块,尤其适合C++开发,但PyQt/PySide本让Python开发者也能轻松使用[^3]。 - **适用场景**: 企业级应用、桌面软件、嵌入式系统开发。例如,KDE桌面环境和AutoCAD等知名软件都使用Qt。 - **语言支持**: 原生C++,Python通过PyQt或PySide绑定。 - **wxPython**: - **特点**: 跨平台且高度原生化。它在Windows上调用Windows API,在macOS上调用Cocoa,在Linux上调用GTK,保证UI风格平台致。wxPython基于wxWidgets库,简单易用,文档丰富,适合快速开发[^2]。 - **适用场景**: 中小型桌面应用、教育软件、原型设计。例如,使用它可以快速创建带有图表和数据输入的GUI工具。 - **语言支持**: Python。 - **Guilib (特定场景)**: - **特点**: 针对VC6开发环境(Microsoft Visual C++ 6.0)的轻量级库,专注于图形绘制和图像处理。它提供简单的API接口,适合旧Windows应用维护或学习经典GUI实现[^1]。但请注意,它是Windows专用且非主流现代库,适合特定场景。 - **适用场景**: 传统C++项目、学习GUI基础原理。 - **语言支持**: C++(Windows环境)。 - **其他推荐库**(基于通用知识): - **Tkinter**: Python内置的GUI库,非常简单易学,适合初学者。例如,Python自带的IDLE编辑器就是用Tkinter开发的。缺点是UI样式较老。 - **Kivy**: 跨平台Python库,擅长触屏应用和游戏界面。 - **Java Swing/AWT**: Java平台的GUI库,适合大型企业应用。 如果您是初学者或有特定语言偏好多,Qt/PyQt(C++/Python)或wxPython(Python)是理想起点。它们功能全面,社区支持强[^3][^2]。 #### 步骤2: 介绍GUI库的基本使用方法 GUI库通常遵循类似的工作流程:初始化应用、创建窗口、添加控件(如按钮、标签)、定义布局、运行主循环。下面以PyQt5(Qt的Python绑定)为例,参考引用[4]的Hello World示例,展示基本步骤。本例创建简单窗口,展示文本标签。 ```python import sys from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout # 初始化应用 app = QApplication(sys.argv) # 创建主窗口 window = QWidget() window.setWindowTitle("PyQt5 窗口") # 设置标题 window.resize(500, 500) # 设置大小 # 添加控件和布局 window.layout = QVBoxLayout() # 垂直布局 window.label = QLabel("Hello World!") # 文本标签 window.label.setStyleSheet("font-size:25px; margin-left:155px;") # 自定义样式 window.layout.addWidget(window.label) # 将标签添加到布局 window.setLayout(window.layout) # 应用布局 # 显示窗口并运行 window.show() sys.exit(app.exec_()) # 启动应用循环 ``` **关键点解释**: - **初始化**:使用`QApplication`创建应用对象。 - **窗口创建**:`QWidget`代表主窗口,通过`resize`和`setWindowTitle`配置大小和标题。 - **控件添加**:`QLabel`用于显示文本,`QVBoxLayout`管理布局(垂直排列控件)。 - **运行**:`show()`显示窗口,`app.exec_()`启动事件循环(处理用户输入)。 这个示例展示了如何用几行代码创建基本界面[^4]。对于其他库如wxPython,原理类似:import库、定义窗口和控件、绑定事件处理。 #### 学习资源建议 - **Qt/PyQt5**: 推荐官方教程([Qt文档](https://doc.qt.io/) 或 [PyQt5教程](https://www.learnpyqt.com/))- **wxPython**: 访问[官网](http://www.wxpython.org/)下载示例代码[^2]。 - **Guilib**: 参考引用提到的API文档[^1],但注意VC6环境已过时,建议优先学习现代库。 使用这些库时,先从简单项目入手,逐步添加事件处理(如按钮点击)来丰富功能。如果您有具体语言或平台需求,我可以提供更针对性的示例。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值