第56篇 笔记-GitHub Desktop

操作系统:windows 64

主要参考:https://docs.github.com/cn/desktop

                  http://book.git-scm.com/book/zh/v2

本篇接上篇《第55篇 笔记-Git 基础》,默认已具备git环境;

目录

一、基础操作

1.下载

2.安装

3.账号登录

4.提交仓库

5.集成环境设置

二、分支管理

1.创建新仓库

2.创建分支

3.推送分支

4.合并分支

5.删除分支


GitHub Desktop 是一个使用 GUI 而非命令行或网络浏览器与 GitHub 交互的应用程序。 GitHub Desktop 鼓励个人和团队使用最佳实践协作处理 Git 和 GitHub。 您可以使用 GitHub Desktop,通过视觉确认更改从桌面完成大部分 Git 命令。 您可以使用 GitHub Desktop 推送到、从中拉取和克隆远程仓库,以及使用协作工具,如归因提交和创建拉取请求。

GitHub Desktop 是一个开源项目,当前支持 macOS 和 Windows 操作系统。

 

一、基础操作

1.下载

要安装 GitHub Desktop,请访问 GitHub Desktop 的下载页面。

 

2.安装

点击下载的文件 “GitHubDesktopSetup.exe” 开始安装:

如果已经有账号,可以直接登录;本文跳过(Skip this step);

此处为本地信息,安装到本界面时,直接从git的配置里读出;Continue;

本次安装没有提示“安装完毕” 步骤,而是直接进入使用界面;

为便于测试,本文选择创建一个新的仓库;

结果,会在选择目录下新建一个目录(即图中的Name),因此不需要提前建好本地目录;

然后就进入主界面了:

 

3.账号登录

在安装的第一个界面,本文跳过了账号,因此在这里登录;点击菜单 File / Options,进行账号登录;

进入认证界面:此时需要输入密码,该密码即登录 github.com 时的账号密码;

成功登陆后,File / Options 界面会显示登录状态;

 

4.提交仓库

拷贝一个目录(含go源码文件)到本地仓库目录下,界面自动显示:

通过菜单 File \ Add local repository 可以增加和管理多个本地仓库实例:

可以切换添加进来的仓库,再也不需要cd来cd去了,白色框内是改变提醒,下面是提交修改。所以整个工作流程是有修改直接 commit 就行了。

在界面左下角区域,输入 Summary(required)和 Description 的内容,直接点击按钮 “Commit to main” ,进行提交;

然后点击 “Publish repository” ;

填写:Name 和 Description;该步骤将会在 Github.com 新创建一个名为 [Name] 的仓库,因此无需提前在 GitHub.com 创建仓库);

本文勾选“keep this code private”;

成功以后查看:

 

5.集成环境设置

点击菜单 File / Options,进行integrations集成环境设置,本文设置为Visual Studio Code;

保存,之后可以在界面直接打开 vscode,对当前仓库进行编辑;

 

二、分支管理

在进行提交操作时,Git 会保存一个提交对象(commit object)。

知道了 Git 保存数据的方式,我们可以很自然的想到——该提交对象会包含一个指向暂存内容快照的指针。 但不仅仅是这样,该提交对象还包含了作者的姓名和邮箱、提交时输入的信息以及指向它的父对象的指针。

首次提交产生的提交对象没有父对象,普通提交操作产生的提交对象有一个父对象, 而由多个分支合并产生的提交对象有多个父对象;

本文从一个新的仓库开始。

 

1.创建新仓库

将下载的 go-ethereum-1.9.21.tar.gz 文件解压,创建本地仓库;

直接按钮 “Publish repository”;

仅用了以上两个步骤,传输成功:

 

2.创建分支

当使用 git commit 进行提交操作时,Git 会先计算每一个文件计算校验和每一个子目录的校验和(使用 SHA-1 哈希算法), 然后在 Git 仓库中这些校验和保存为树对象。随后,Git 便会创建一个提交对象, 它除了包含上面提到的那些信息外,还包含指向这个树对象(项目根目录)的指针。 如此一来,Git 就可以在需要的时候重现此次保存的快照。

现在,Git 仓库中有三类对象:多个 blob 对象(保存着文件快照)、一个  对象 (记录着目录结构和 blob 对象索引)以及一个 提交 对象(包含着指向前述树对象的指针和所有提交信息)。

Git 的分支,其实本质上仅仅是指向提交对象的可变指针。 Git 的默认分支名字是 master(本例即如此)。 在多次提交操作之后,你其实已经有一个指向最后那个提交对象的 master 分支。 master 分支会在每次提交时自动向前移动。

Git 的 master 分支并不是一个特殊分支。 它就跟其它分支完全没有区别。 之所以几乎每一个仓库都有 master 分支,是因为 git init 命令默认创建它,并且大多数人都懒得去改动它。

Git 是创建新分支很简单,它只是为你创建了一个可以移动的新的指针。 比如,创建一个 testing 分支, 你需要使用 git branch 命令:

$ git branch testing

这会在当前所在的提交对象上创建一个指针。

Git 是怎么知道当前在哪一个分支上呢? 它有一个名为 HEAD 的特殊指针,指向当前所在的本地分支(将 HEAD 想象为当前分支的别名)。

在本例中,你仍然在 master 分支上。 因为 git branch 命令仅仅 创建 一个新分支,并不会自动切换到新分支中去。

要切换到一个已存在的分支,你需要使用 git checkout 命令。

$ git checkout testing

本文在 GitHub Desktop 的菜单 Branch / New branch 创建新分支;

点击 Create branch ,即创建新分支成功,并且会自动切换到新的分支;

相当于命令:

$ git checkout -b testing            //创建一个新分支,并切换过去

 

3.推送分支

本文在没有做任何修改的情况下,对分支 testing 进行提交操作 Publish repository,成功推送到服务端;

在 GitHub Desktop 点击按钮 “ Open in Visual Studio Code ” ,对 geth 程序进行编译,编译后直接关掉 VSCode,返回 GitHub Desktop;

显示增加了一个文件,直接 Commit go testing;并 “Push origin”;推送成功,testing 分支有相应修改:

此时, testing 分支向前移动了,但是 master 分支却没有,它仍然指向之前所指的对象。

 

4.合并分支

在合并的时候,应该注意“快进(fast-forward)”这个词。 由于你想要合并的分支 testing 所指向的提交 87ab2 是你所在的提交 f30ab 的直接后继, 因此 Git 会直接将指针向前移动。换句话说,当你试图合并两个分支时, 如果顺着一个分支走下去能够到达另一个分支,那么 Git 在合并两者的时候, 只会简单的将指针向前推进(指针右移),因为这种情况下的合并操作没有需要解决的分歧——这就叫做 “快进(fast-forward)”。

$ git checkout master          //切换分支
$ git merge testing            //快进方式合并分支

在 GitHub Desktop 切换到 master 分支,点击目录 “ Branch \ Merge into current branch ” ,进行合并操作;

显示合并成功,直接 “Push origin” 进行推送;推送成功,就可以到 github.com 查看结果,显示 master 分支已经多了编译结果文件;

 

5.删除分支

既然修改的内容已经合并进来了,就不再需要 testing 分支了。 现在你可以在任务追踪系统中关闭此项任务,并删除这个分支。

$ git branch -d testing

在 GitHub Desktop 切换到 testing 分支,点击目录 “ Branch \ Delete ” ,进行分支删除操作;

其中远程分支是否删除,可选;

本文操作完成后,testing 分支在本地和远程服务器均被删除;实际操作中,master 分支无法删除,只能通过删除该仓库,进行 master 分支的删除;

 

注意:如果超过特定限制,GitHub Desktop 将会拒绝推送。

  • 推送包含大小超过 100 MB 的大文件。
  • 推送总大小超过 2 GB。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wonderBlock

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值