Git 是什么?
有一次我需要向别人解释Git,所以做了一份总结的备忘录。
虽然可能有些不准确,但我尽力用简单易懂的语言来总结。
请参考以下网站
易懂的网站。
【绝对能理解】Git是什么?特点和能做的事情总结!
【初学者适用】Git是什么?首先理解流程(无代码)
你要做什么?
-
- プログラム等のファイル一式を置いておく場所(サーバー上のシステム)。ファイルを修正したらどんどん最新のものに上書きしていく。
-
- 複数人のチームで何か(プログラムでもそれ以外でも)を制作する場合や、他の人にファイルを渡したい時に、ファイルを共有できる場所。
- クラウド(インターネット上)のGitにファイルを置いておけば、複数の場所を移動して開発する人にとっては、どこからでも自分のファイルにアクセスできる。
在共享文件夹或谷歌云端硬盘中共享文件与其他方式有何不同?
1. 什么时候,谁对哪个文件进行了何种修改的变更历史将自动记录下来。
除非是一个做事细致的人,否则关于更改的5W1H(?),即「何时」「谁」「对哪个文件做了」「什么样的更改」「为何目的」,很快就会被遗忘。将文件放入Git后,关于「何时」「谁」「对哪个文件做了」「什么样的更改」的部分会自动、准确地记录下来。无论文件数量、更新次数以及涉及的人数有多少,都能准确记录下来。关于「为何目的」的部分可以在提交(COMMIT)更改到Git时出现的界面上进行评论。
Officeファイルや画像ファイルなどは、「いつ」「誰が」「どのファイルに」の記録のみで、具体的な変更内容は記録されない。
Gitは、自動で、全てのファイルの中身を解析し、前回との変更内容を自動で見つけ出して記録してくれるのだが、Officeファイルや画像の中身は解析できないため。
それらのファイルの場合、変更者が自分で、Gitに反映(COMMIT)するときのコメントで書いておく。
2. 可以轻松地恢复特定时点的过去文件状态。
无论进行多么细微的更改,每一次都会自动在后台创建备份。因此,我认为当程序发生错误时,经常会有想要恢复到错误发生之前的时候,而这可以很容易地实现。
(这不仅限于文本数据,任何文件都会创建备份)
如果数据不需要更改历史记录或文件数量较少,且能够记住所有的变更内容,那么使用Git并非必然之选,因为它需要花费一定的时间成本来构建环境和学习使用方法。
谁会使用?
也许,这些人把程序放在了Git上面……
複数人で、ある程度の規模のプログラムを開発するチーム
チーム開発の手間を減らすためや、トラブル回避のために使う。
IT業界に就職しようとしている人
就職先で使う可能性が高いので、学習しておくために使う。
自分が作成したプログラムのソースコードを、採用担当者にすぐ渡せるよう、クラウドのGitに置いておく。Gitが使える証明にもなる。
プログラム技術者の情報共有
プログラムに関する知識を、誰かと共有・情報交換するために使う。
根据相关链接的网站,最近据说甚至文章撰写者也在使用它。
如果没有Git呢?
如果没有Git(版本管理系统),人数较多的程序开发大概会变成这样…
-
- エラーが起きたらすぐ戻せるように、ファイルを修正する前には必ずコピーして、ファイル名に日時をつけて(「sample_20191101100331.java」みたいな)バックアップしておくことが推奨される。
-
- そのうちに、日時のついたコピーデータだらけになる。コピーデータをいちいち作ったり管理するのも大変。
-
- 情報共有のため、「いつ」「誰が」「どんな変更を」「どんな目的で」修正したかのコメントを、どこか(ファイルの先頭部分や、変更箇所の近辺など)に書くのが必須ルールになる。そのうちにプログラムがコメントだらけになる。
-
- それでも、誰かの変更を、他の人が消したり安易に変更してしまうことが頻発する。
-
- 上書きのトラブル
- AさんとBさんが同じファイルの別の箇所を修正した場合、Aさんが先に共有フォルダーに自分の修正ファイルを置いた後、Bさんが誤って上書きすると、Aさんの修正が消えてしまい、戻せなくなったり。
Git有哪些类型
(1) 云端(即互联网)上的Git
以下是两个著名的例子。
GitHub
GitHub 是一个允许全球人们保存和发布自己的作品(如程序代码和设计数据)的网络服务。它经常被用于信息共享。在免费课程中,所有数据都会公开展示在全球。而通过付费课程,你可以将数据设为仅个人私有。
GitLab
GitLab 是类似于 GitHub 的服务,特点在于可以免费创建非公开的代码库(代码库:文件存储位置)。
听说GitHub也可以使用私人仓库了,但是似乎有一些功能限制。
参考网站:GitHub 现在能免费无限制地创建私人仓库了☆
(2) 构建在公司内部或个人电脑上的Git
将无法公开在社外的程序等放置在云端上,这样一来,可以成为应对网络故障或Git服务端故障的措施。此外,有些人也会搭建Git服务器来提升自己的技能。
其他参考网站
https://blog.sixapart.jp/2014-03/mttips-02-what-is-git.html
https://www.startup-git.com/beginners/git-merit/