GitHub——基础知识篇

简介: 上周,我在 FITC SCREENS 为设计师们做了一次关于GitHub的演讲,你可以在这里看一下演讲的幻灯片。我觉得把演讲的精华内容放在博客上让大家都能看到,是一件很重要的事,所以这就是你接下来将要看到的。

上周,我在 FITC SCREENS 为设计师们做了一次关于GitHub的演讲,你可以在这里看一下演讲的幻灯片。我觉得把演讲的精华内容放在博客上让大家都能看到,是一件很重要的事,所以这就是你接下来将要看到的。

image.png

Git是一个管理和更改文件的工具,GitHub的是建立在Git上的一个Web服务。这篇文章就是准备向你介绍一些Git和GitHub的基础知识,并教你如何使用这些工具与你的团队成员协作。


Git可以管理任何类型的文件,但它通常用于文本文件和图像管理。通常情况下,我们不会用它来存储格式比较复杂的文件,比如PSD文件。


我们使用Git有两个主要原因。其一是它可以帮助我们管理多个团队成员在相同的文件上做的更改 —— 帮助我们跟踪谁在什么时候、做什么样的更改。使用Git的好处是很具体的,但它又有一个陡峭的学习曲线。然而,学习Git是伟大的第一步,它教你学着去改变你已设计的项目。本文也不打算深入到命令行或一个特定的工具,而是教你一些高层次的概念,这将有助于你无视工具的不同(因为它们本质上都是一样的)。

分支(Branches)

分支用来隔离文件更改的。想像一下,你所有的文件复制被到一个新文件夹,所做的任何更改只是在副本操作,在最后你 拉(pull)这些副本放回到原来的文件夹。

一个分支就是像对你所有的文件做一份复制。

“主”分支(“master” branch)是一个标准分支 —— 所有新分支都是在主分支上创建的。

image.png

当你从主分支创建一个新的分支,就像你为所有的文件创建了一份新副本,这些副本上所做的更改并不会反映回原文件夹(更改新分支内容,主分支不会有变化,除非你 push,接下来会有讲到)。

提交(Commits)

当你操作一个分支时,就像你正在做修改这些文件的副本。当你完成了一个更改,比如增加了一些新的CSS,你应该 提交(Commits) 你的修改。这种“保存”在新目录中的新文件的快照,可以让你随后 恢复(revert) 到该时间点。在你提交之前,没有什么是永久的,所以你可以很容易地做出一些奇怪的、实验性的更改,看它是否还能正常工作。

当你提交时,你只是提交给你的分支,你的分支仍然是那个主分支的一部分,代表的是一系列的提交操作之后的结果。

image.png

上图你的分支(Your Branch) 就是有两次提交结果之后的分支,依旧是主分支的一部分。

本地和远程(Local & Remote)

这是让Git变得有点复杂的那部分。主分支和你的分支都存在于 本地(Local),也有主分支的一个副本在GitHub上,即 远程端(Remote)。这就像在办公室有一个共享文件服务器,它有一个与你保持同步的文件夹。

当你创建一个新的分支,所有的修改都是在本地操作(你电脑的文件夹中)。

image.png

同样,你的分支只存在于你的本地计算机上,直到你把它 推到(push) 远程端,这就是接下来要说的。

推送和拉回(Pushing & Pulling)

当你准备向人展示你的更改时,你就应该把你的分支,其中包括变更,都 推送(push) 到GitHub上。这类似于你把自己本地最新版本的文件夹复制到共享的文件服务器。

image.png

现在你的最新版本分支在本地和远程端都有了。一旦你把你的更改推送到GitHub上,就需要创建一个 拉回(pull) 的请求(原因往下看),这是一个将你的分支更改拉回到主分支的请求。

image.png

一旦这些更改都被拉入远程主分支,你的本地主分支的版本是过时的(记住,此时你的分支上的更改会被暂时孤立),所以现在又需要从远程拉最新的版本来更新您的本地主分支,就像从服务器重新复制原始文件。

image.png

现在就令人困惑了,因为我们在两种情况下都使用了“拉”一词。第一次,我们想把我们的分支更改合并到主分支;第二次,我们想把主服务器上的更改拉回到本地以保持最新版。

总之,Git是团队协作时一个非常好用的文件管理工具,不过学起来确实比较复杂。我们都知道要想熟悉它,最好的方式就是不断去用它。

相关文章
|
开发工具 git Ruby
GitHub的基础使用入门
GitHub的基础使用入门
819 0
|
4月前
|
开发工具 git 开发者
2024最简七步完成 将本地项目提交到github仓库方法
该文章提供了一个简洁的七步教程,指导用户如何将本地项目提交到GitHub仓库。
2024最简七步完成 将本地项目提交到github仓库方法
|
2月前
|
编解码 Oracle Java
java9到java17的新特性学习--github新项目
本文宣布了一个名为"JavaLearnNote"的新GitHub项目,该项目旨在帮助Java开发者深入理解和掌握从Java 9到Java 17的每个版本的关键新特性,并通过实战演示、社区支持和持续更新来促进学习。
95 3
|
4月前
|
存储 安全 Java
【事故】记一次意外把公司项目放到GitHub并被fork,如何使用DMCA下架政策保障隐私
在一次意外中,作者因三年前将测试代码遗忘在GitHub上而遭遇了代码被他人fork的问题。为解决这一危机,作者详细介绍了如何通过GitHub的DMCA下架通知流程安全删除敏感代码,包括处理私人信息和商标侵权的具体步骤。本文不仅提供了实用的操作指南,还强调了及时响应的重要性,帮助读者避免类似风险
70 1
【事故】记一次意外把公司项目放到GitHub并被fork,如何使用DMCA下架政策保障隐私
|
4月前
|
Java
Java系列之 解决 项目 jar 包无法上传到Github
该博客文章介绍了解决Java项目中jar包无法上传到Github的问题,通过修改`.gitignore`文件来包含jar包,从而成功添加到上传目录。
Java系列之 解决 项目 jar 包无法上传到Github
|
4月前
|
数据采集 编解码 算法
Github | 推荐一个Python脚本集合项目
Github | 推荐一个Python脚本集合项目
|
4月前
|
Rust 前端开发 JavaScript
Github 2024-05-20 开源项目周报 Top15
根据Github Trendings的统计,2024年5月20日当周共有15个项目上榜。按开发语言分类,项目数量如下:Python项目5个,TypeScript项目3个,C++项目2个,Jupyter Notebook项目2个,C、Go、Rust和C#项目各1个。介绍了多个值得关注的项目,包括ChatGPT桌面应用程序、Fooocus图像生成软件、Jellyfin媒体系统等。这些项目涵盖了多种功能和技术领域,值得关注和研究。
76 3
|
4月前
|
SQL JavaScript 前端开发
Github 2024-08-05 开源项目周报 Top15
根据 Github Trendings 的统计,本周(2024年8月5日统计)共有15个项目上榜。以下是根据开发语言汇总的项目数量: - Go 项目:4个 - JavaScript 项目:3个 - Python 项目:3个 - Java 项目:2个 - TypeScript 项目:2个 - C 项目:1个 - Shell 项目:1个 - Dockerfile 项目:1个 - 非开发语言项目:1个
151 2
|
4月前
|
人工智能 Rust JavaScript
Github 2024-08-26 开源项目周报Top15
根据Github Trendings的统计,本周共有15个项目上榜。以下是按开发语言汇总的项目数量:Python项目8个,TypeScript、C++ 和 Rust 项目各2个,Jupyter Notebook、Shell、Swift 和 Dart 项目各1个。其中,RustDesk 是一款用 Rust 编写的开源远程桌面软件,可作为 TeamViewer 的替代品;Whisper 是一个通用的语音识别模型,基于大规模音频数据集训练而成;初学者的生成式人工智能(第2版)则是由微软提供的18门课程,教授构建生成式AI应用所需的知识。
149 1
|
4月前
|
Rust Dart 前端开发
Github 2024-08-19 开源项目周报Top15
根据Github Trendings的统计,本周(2024年8月19日统计)共有15个项目上榜。按开发语言分类,上榜项目数量如下:Python项目最多,有7项;其次是JavaScript和TypeScript,各有3项;Dart有2项;HTML、PowerShell、Clojure和C++各1项。此外,还介绍了多个热门项目,包括Bootstrap 5、RustDesk、ComfyUI、易采集、Penpot等,涵盖了Web开发、远程桌面、自动化测试、设计工具等多个领域。
123 1