关于Git和GitHub

关于本文

由于刚开始学习编程的初学者对Git和GitHub有所了解,所以将其知识整理成备忘录并分享出来。

请您手下留情,谢谢 ( – -)(_ _)鞠躬

Git is a widely used version control system that tracks changes in files and code.

版本控制是记录和追踪源代码和其他文件或文件夹的更改历史的管理方法。

– 可以按时间顺序追踪文件的保存点。可以按照时间顺序进行存储。
– 管理源代码的版本。

・不再需要每次更改都更新文件。
・可以知道何时、谁以及在哪里进行了编辑。

GitHub – GitHub是一个面向开发者的托管平台。

・一项使用Git机制实现多人协同开发的Web服务。

・可以像云服务一样共享、同时编辑和保存文件。
・全球各地的人们都在存储他们的程序和设计数据。

・一种能够通过Git支持多人开发的服务
・在merge方法中也可以进行追加

关于Git和GitHub

在创建应用程序时,有时候会想重新制作。因此,可以使用Git来在想要保留到某个阶段时进行管理。实现版本控制。

在多人合作开发中,有时可能会不小心删除其他人编写的代码。当遇到意外删除或者难以共享文件的情况时,结合使用Git和GitHub这两项服务非常方便。

在应用程序开发中的问题。

・在代码的开发阶段,想要回到某个点,但不知道该如何编辑哪个文件
・在多人开发的过程中,不小心删除了他人编写的代码。

使用Git进行版本控制

首先,需要准备一个类似于文件内容保存的盒子。
需要准备一个用于保存的框架。
这个盒子被称为仓库。

The given term “リポジトリ” will be paraphrased in Chinese as “代码仓库”.

・类似于一个存放受Git管理的文件和目录变更历史记录的盒子的地方。
仓库中包括本地仓库和远程仓库。

本地仓库

・在自己的电脑上(本地环境)存储库(用于存放的容器)
・可以根据自己的时间进行更新。可以保存的空间。总的框架

远程仓库

・放在外部服务器上的仓库(用于存放)
・通过互联网进行连接。位置与自己的个人电脑不同。
・与本地仓库同步进行修改和修正,以反映到远程仓库。
→可以与他人共享自己创建的代码,更便于团队开发。

・可以用于多人开发。
・即使是一个人的时候也可以使用。如果从使用Git的用户处指出此处的不安并进行评论,世界各地的人们会给予建议(通过拉取请求)。可以选择性地要求他人给出这个文件夹的建议。拉取请求有助于让其他人检查。

承诺

在本地存储库中保存文件和目录,并进行更改和修订。
→ 可以按时间顺序进行更改和修订的管理,也可以回溯。

提交消息

为了让「需要进行哪些修正变更」更加清晰易懂,附上备忘录。
类似于HTML、CSS、Ruby中的注释。
不必检查内容。

.DS_Store

不需要在Git中管理的不必要的更改历史记录。记录目录信息的文件。
在Git的管理下变得繁琐。

当进行commit操作时,更改将被暂时存储在本地存储库中。
→ 使用push命令,将更改反映到远程存储库。

提交日志

查看提交记录的方法(可从历史中查看)●提交的粒度(以何频率进行提交)

在一定程度上,细分承诺更好。

详细提交commit的好处

・管理作业的进度
・当出现错误时,可以确定错误出现的位置,了解发生错误的分叉点,并在此基础上进行前后比较

每次在GitHud Desktop之间往返很麻烦,
解决这个问题的是索引和添加的概念。

索引(存储在索引中的内容是comitt(提交)的对象)

更改修正的临时存储位置

add(アド):添加

将文件的添加、更改和修正包含在索引中,以便提交。在箱装阶段,尚未提交索引。索引被分为一个分类存储库,存储在一个大型的仓库中。在存储库中,数据按照类别进行存储,以便于提取数据。索引是箱子,存储库是仓库,添加操作是箱装过程。

在使用GitHub时的默契。

GitHub在开发过程中,无论是多人协作还是个人开发,都可以通过与世界各地的人交流获取建议等等。因此,它是一个用于沟通的网络服务,存在开发流程的规则。作为这些规则之一,就有分支机制。分支可以独立进行编辑,而不会影响称为”主干(master)”的主要分支,如果需要,还可以隔离出来,然后再将内容添加到主干中。

分支

每次变更都是文件和目录在存储库中进行管理的一系列连续的提交。

分岐是可行的。
主线 → 主分支
分岐的分支 → 专题分支

话题分支的好处

・在多人开发中,可以同时编辑修改MVC文件,即使发生同时编辑相同文件的情况。
・不会对主流的master分支产生影响。
・通过创建分支,可以实现目标导向的同时并行开发。
・即使发生故障,也能更容易地进行应对。

请提交请求

每个提交都可以附带变更修正的注释,以及提交历史。可以让任何人查看。在关于何种功能的pull request上(对分支进行了什么操作),会逐步描述what(做了什么)和why(为什么要进行该实现)。

当应用程序的功能变得复杂时,如果仅仅通过代码一瞥是很难理解的,因此需要明确地注明”what”部分。

为了获得想要的建议,需要明确写明实施目的才能得到。

使用Markdown进行编写

Markdown 是一种记法。

代码审查

他人会确认代码的撰写内容是否有问题
代码审查人员担负代码审查任务

合并

将分叉的历史回溯并整合的方法

・将远程仓库的变更导入本地仓库操作。
・将远程仓库的信息反映到本地仓库中。

很不错(Looks good to me)

我认为代码没有问题!

pull和clone的区别

拉 (lā)

在本地存储库和远程存储库已经关联的情况下,将远程存储库的信息拉取到本地存储库进行同步。

克隆

将远程代码仓库作为一个箱子存在于网络服务上,手头没有本地代码仓库的情况下,我们可以从远程仓库中创建一个本地仓库。

在使用clone时,如果要与他人共享自己的应用程序,则首先需要在自己的个人计算机上创建本地代码仓库,然后将自己创建的本地代码仓库推送(同步)到远程代码仓库中。然后在其他人的个人计算机上,需要将远程代码仓库中的信息拉取(同步)到他们的本地代码仓库中。

推送(将更改同步到远程存储库)需要有相应的权限。

在共享的远程仓库中,他人需要权限才能将数据进行推送,不能随意进行推送。

通常情况下,只有部分更新被允许,需要补充数据差异(原始提取)。新的分支将直接继承当前主分支的状态。因此可能会发生你所认为的保存内容未被反映的情况。务必检查合并内容,更改主分支的内容,并在更新时进行确认。如果在拉取后,新创建的分支内容未被反映到主分支,则本地主分支中正在进行的工作将处于未更新的状态。这是因为主分支是主干,分支直接继承了原始主分支的内容。每次都要确认保存的内容。分支(1)和(2)是独立的,因此要及时进行工作,需要在主分支处于更新状态下进行操作。

使用 GitHub 时的步骤如下

从主分支创建分支
在分支上进行编辑后提交
为了解决本地和远程数据更新的差异,通过push将数据反映到远程
创建并公开Pull Request
评审人员确认+LGTM
合并到远程主分支
为了解决远程和主分支数据更新的差异,通过pull将数据反映到本地

如果在主分支上写代码而不创建分支

储藏

当我想要暂时离开当前任务,或者离开并回到原来的工作时使用。

冲突

由于每个分支的内容不一致(即互相冲突、有分歧),所以无法合并,是因为同一个文件已被其他人修改。

点击“解决冲突”来解决冲突问题。

在多人开发的过程中,冲突很容易发生。

・提前防止冲突。
・在创建分支之前进行pull操作(同步最新的主分支内容)。
・在多人开发时进行沟通会议。

深入挖掘发生的要点

为什么会发生?
努力防止再次发生。
进行报告、联系、商讨并确认。

我不小心按下了错误的按钮。

虽然无法将推送的信息返回到本地存储库,但可以撤销错误的提交到远程存储库。

回复

通过添加不同于已经提交的更改来撤销提交。
为了撤销指定的提交,需要添加一次提交。

这就是以上的全部内容。