【初心者向け】世界一わかりやすいGit入門【図解】

テックキャンプのプログラミング塾
21 Feb 202409:26

Summary

TLDRこの動画は、ギットというバージョン管理ツールを使い始める方法と、その利点を詳しく解説しています。ギットは、プログラムの状態をセーブできるツールで、プログラミング言語と誤解されがちですが、実際にはプログラミングを行う際に使用するツールです。動画では、ゲームのセーブ機能に例を挙げて、ギットがどのようにプログラムの変更を追跡し、いつでも元に戻すことができますかを説明。さらに、複数の開発者が同じシステムを作っている際に、ギットがどのように役立つかも解説されています。ブランチ機能を通じて、他の人への影響を与えずに自由に作業できることが強調されています。動画の最後に、プログラミング学習に役立つツール35選を紹介し、視聴者に向けた特典を提供しています。

Takeaways

  • 📝 ギットはプログラムの状態をセーブするためのツールで、プログラミング言語ではありません。
  • 💡 ギットを使うことで、プログラムをいつでも戻すことができます。
  • 🕒 ゲームのセーブ機能と似て、ギットのセーブをコミットと呼びます。
  • 🔄 ギットは複数の人でシステムを作る際にも非常に便利で、衝突を避けるために使用されます。
  • 🖥️ リポジトリはシステムを作るためのファイルや画像を集めた場所です。
  • 🌐 リモートリポジトリはオリジナルのコードをオンラインで共有し、みんながアクセスできる状態です。
  • 💻 ローカルリポジトリはリモートリポジトリを自分のパソコンにコピーしたもので、編集を行います。
  • 🔄 変更をオリジナルに同期させることをプッシュ、オリジナルの変更を自分のパソコンに同期させることをプルと呼びます。
  • 🔧 複数の人が同じファイルを編集した場合、コンフリクトが起きることがあります。
  • 🌟 ブランチは現在作業しているコードとは別の平行世界を作る機能で、影響を与えずに自由に作業できます。
  • 🎓 ギットの学習はエンジニアを目指す人にとって必須であり、実際の仕事でほとんどの場合複数のエンジニアが一緒に作業するため、ギットを使用することが必要です。

Q & A

  • ギットはどのようなツールですか?

    -ギットは、プログラムの状態をセーブできるツールです。プログラミング言語ではありませんが、プログラミングを行う際に使用するツールです。

  • ギットの「コミット」とは何を指しますか?

    -ギットの「コミット」とは、システムの変更を加えた後にセーブする行為を指します。これにより、プログラムの状態をいつでも戻すことができます。

  • ギットを使用する際に作成される「リポジトリ」は何ですか?

    -リポジトリは、システムを作るためのファイルや画像などの集まりです。ここには、セーブした情報や変更の履歴も含まれています。

  • 「リモートリポジトリー」と「ローカルリポジトリー」の違いは何ですか?

    -リモートリポジトリーは、インターネット上に公開され、複数の人がアクセスできる状態のリポジトリです。一方、ローカルリポジトリーは、それぞれの開発者のパソコンにコピーされたリポジトリです。

  • 「プッシュ」とは何を指しますか?

    -「プッシュ」とは、自分のパソコンで行った変更をオリジナルのリモートリポジトリーに同期させることを指します。これにより、他の開発者と変更を共有することができます。

  • 「プル」とは何を指しますか?

    -「プル」とは、リモートリポジトリーで起きた変更を自分のパソコンのローカルリポジトリーに同期させることを指します。これにより、最新の状態に更新することができます。

  • 「コンフリクト」とは何を指しますか?

    -「コンフリクト」とは、複数の開発者が同じファイルの同じ箇所に変更を加えた際に、どの変更を採用すべきか分からなくなる状況を指します。この場合、衝突したコードを正しい状態に修正する必要があります。

  • 「ブランチ」とは何ですか?

    -「ブランチ」とは、現在作業しているコードとは別の平行世界のような空間を作成する機能です。これにより、他のコードに影響を与えずに自由に作業することができます。

  • ブランチを使用する利点は何ですか?

    -ブランチを使用することで、本体に影響を与えないまま、新しい機能を開発することができます。また、ブランチを消すことで、作業内容がなかったことにもなります。

  • ギットを使用する際に注意すべき点は何ですか?

    -ギットを使用する際には、他の開発者と変更を同期するタイミングでコンフリクトが発生する可能性があることに注意が必要です。また、ブランチを使用することで、コンフリクトを回避し、安全にサービスを作成することができます。

  • ギットの習得は重要ですか?

    -ギットの習得は非常に重要です。実際の仕事では、ほとんどの場合、複数のエンジニアが協力して作業を行います。そのため、ギットを使用できないと、チームでの開発に参加することができません。エンジニアを目指す人にとっては、ギットの習得が必須です。

Outlines

00:00

📚 ギットの基本的な使い方と機能

この段落では、ギット作为一种程序保存工具的基本概念和功能被解释。ギット允许开发者保存程序的状态,类似于游戏中的保存功能,以便在出现错误或不满意的结果时可以恢复到之前的状态。这种功能对于编程来说尤为重要,因为它允许开发者在编写代码时进行尝试和错误修正,而不必担心无法撤销更改。此外,ギット还提供了详细的保存历史记录,包括谁做了更改以及更改的内容,这对于团队协作和项目管理非常有用。

05:02

👥 ギットを使ったチームでの開発プロセス

この段落では、ギットを使用してチームでソフトウェア開発を行うプロセスが説明されています。複数の開発者が同じプロジェクトに取り組む場合、ギットは非常に役立ちます。それぞれの開発者がプロジェクトのコピーを自分のコンピューターに持ってき、変更を加え、最終的に元のプロジェクトに変更をマージすることで、協力して開発を進めることができます。このプロセスは、リモートリポジトリとローカルリポジトリーの同期、変更のプッシュとプル、そしてコンフリクトの解決など、ギットの高度な機能を使用して行われます。また、ブランチという概念も紹介されており、開発者がプロジェクトの異なるバージョンを安全に作成し、テストし、マージすることができるようになっています。

Mindmap

Keywords

💡ギット (Git)

ギットは、プログラムの状態をセーブできるツールであり、プログラミング言語ではありません。このツールを使うことで、プログラムの進捗や変更を記録し、いつでも戻ることができます。例えば、ゲームのセーブ機能と似ていて、いつでもプログラムを特定の時点まで戻すことができます。ギットは1人で作業する場合や、複数人でのプロジェクト開発に非常に役立ち、変更の履歴を残すことで、後から問題を追跡・解決することが可能です。

💡コミット (Commit)

コミットは、ギットを使った開発において、変更を保存することを指します。たとえば、プログラムのコードを書いたり、修正したりした結果を「コミット」することで、その時点でのプログラムの状態を記録します。これにより、後でプログラムを修正する際に、どのような変更が行われたのかを確認し、必要に応じて元に戻すことができます。

💡リポジトリ (Repository)

リポジトリは、ギットを使ったシステムでプログラムのコードやファイルが集約されている場所です。1人または複数の開発者が共有して作業することができます。リポジトリはローカルとリモートの2種類があり、ローカルは各開発者のコンピュータに、リモートはインターネット上に置かれます。これにより、チーム内の全てのメンバーが同じコードベースを参照し、同時に作業することができます。

💡プッシュ (Push)

「プッシュ」は、ローカルリポジトリにある変更をリモートリポジトリにアップロードすることを指します。たとえば、開発者がコードを編集した場合、その変更をリモートリポジトリにプッシュすることで、他の全ての開発者にもその変更が反映されます。これにより、チーム全体が最新のコードを共有し、プロジェクトを進めることができます。

💡プル (Pull)

「プル」は、リモートリポジトリからの変更をローカルリポジトリに取り込むことを指します。たとえば、他の開発者がコードに変更を加えた場合、自分のローカルリポジトリに「プル」することで、最新のコードを取得し、自分の作業環境を更新することができます。これにより、チームメンバーは常に同じページにいるような状態を保ち、協調して作業を進めることができます。

💡ブランチ (Branch)

ブランチは、メインの開発ストリームから分岐した新しい開発ラインを作り、そこで独立的に作業を進めることを意味します。これにより、メインのコードベースを変更することなく、新しい機能を試行錯誤することができます。もしブランチでの作業が成功した場合には、メインの開発ストリームにマージすることができます。

💡マージ (Merge)

マージは、ブランチで行われた変更をメインの開発ストリームに取り込むことを指します。これにより、ブランチで開発された新機能や修正が、メインのプロジェクトに反映され、全ての開発者が使用できるようになります。マージの際には、コードの整合性を保つために、コンフリクトを解決する必要があるかもしれません。

💡コンフリクト (Conflict)

コンフリクトは、複数の開発者が同じコードの同じ部分に変更を加えた場合に起こる問題です。たとえば、2人が同じ行のコードを変更し、整合性が失われるような状況です。この場合、開発者はコンフリクトを解決し、どちらの変更を採用するかを決定する必要があります。コンフリクトの解決は、チームでのコミュニケーションと協調を大切にすることが重要です。

💡チーム開発 (Team Development)

チーム開発は、複数の開発者が協力して1つのプロジェクトを進めることです。それぞれのメンバーが異なるスキルや役割を持ち、コミュニケーションを通じて協調して作業を進めます。ギットを使うことで、チーム開発ではコードの変更を効率的に管理し、問題が発生した場合には遡及的に解決することができます。

💡プログラミング言語

プログラミング言語は、コンピュータに命令を与えるために使用される形式言語です。開発者はプログラミング言語を使ってソフトウェアやアプリケーションを作成します。ギットはプログラミング言語ではありませんが、プログラミングを行う際に非常に役立つツールです。

Highlights

ギットはプログラムの状態をセーブできるツールである

ギットはプログラミング言語ではなく、プログラミングを行う時に使用するツールである

ゲームのセーブ機能と同様に、ギットを使うことでプログラムの状態をいつでも戻すことができる

ギットのセーブ機能(コミット)は、変更履歴や誰が変更したかの情報を保存している

ギットを使うことで、複数人でのシステム開発がスムーズに行える

コードを公開して誰でも編集できるようにすることで、チームで協力して開発できる

ローカルリポジトリとリモートリポジトリの概念が導入され、それぞれの役割が明確化されている

プッシュとプルという操作によって、ローカルリポジトリとリモートリポジトリを同期することができる

コンフリクトが発生した場合、衝突したコードを正しい状態に修正する必要がある

ブランチという機能によって、他の作業者に影響を与えずに自由に作業できる

ブランチをマージすることで、本体に新しい機能を追加することができる

ギットの学習はエンジニア志望者にとって必須であり、実務で広く使用されている

プログラミング学習において必見のツール35選が存在し、効率的な学習ができる

これらのツールを知ることが、プログラミング学習の効率を高めるために重要な要素である

特典としてプログラミング学習に役立つツールが提供されている

動画視聴者がチャンネル登録や高評価をすることで、より多くの情報を受け取ることができる

Transcripts

play00:00

テックキャンプのしぼです今回はギットを

play00:03

世界一分かりやすく説明しますまずギット

play00:06

とは何かと言とま簡単に言えばプログラム

play00:10

の状態をセーブできるツールです

play00:12

プログラミング言語と間違えている方が

play00:14

いらっしゃるんですが言語ではなく

play00:16

あくまでもプログラミングをする時に使う

play00:18

ツールです例えば攻略に時間のかかる

play00:21

ゲームは必ずセーブができるようになって

play00:23

います出ないと失敗した時に後で戻ったり

play00:27

万が一ゲームの電源が落ちても被害は対象

play00:30

で済みますよねプログラミングも同じです

play00:33

コドを書いていて間違えてファイルを消し

play00:35

たりバグが出てきて解決できなくなって

play00:38

しまってもう元の状態に戻したいと思う

play00:41

ことがありますギットがあればプログラム

play00:43

の状態を保存しておけるのでいつでも戻す

play00:46

ことができますゲームの場合はセーブ

play00:49

できる数が限られていますがギットは

play00:51

そんなことはありません何回でもセーブが

play00:54

できますさらにそれぞれのセーブデータに

play00:56

は誰が変更したのか何をしたのかといった

play01:00

情報が一緒に保存されていますま例えば

play01:03

家族で1つのゲームを遊んでいた時に勝手

play01:06

によくわからないところまで進んでいたら

play01:08

嫌ですよねお父さんがここまで進めた

play01:11

お兄ちゃんがこれをやったということが

play01:13

セーブデータごとに分かった方が安心です

play01:16

まこのようにプログラムの変更をセーブし

play01:18

ていき後で履歴として振り返ったり元に

play01:21

戻せるようにできるのがギットですギット

play01:24

におけるセーブのことをコミットと言い

play01:27

ますギットを使ったシステム作りでは変更

play01:30

を加えるセーブする変更を加えるセーブ

play01:33

するというのをひたすら繰り返していくと

play01:36

いうことですもし途中で間違えたり元に

play01:39

戻したい時には特定のセーブの状態まで

play01:42

戻すことができますまこのセーブ機能だけ

play01:44

でもギットは十分便利なんですがギッの

play01:47

魅力はこれだけではありませんギットは

play01:50

複数人で同じシステムを作る時に非常に役

play01:53

に立ちます例えばチームで新しいレシピ

play01:56

サイトを開発することを考えましょう仮に

play01:59

このサービスをテックレシピという名前に

play02:01

しますみんなでテックレシピのコード編集

play02:04

したいですよねでもAさんのパソコンに

play02:06

だけコードが置いてあったら他の人は編集

play02:09

できませんですので複数人で開発をする

play02:12

ならコードはみんなが編集できる状態にし

play02:15

ないといけませんそこでネット上に行動を

play02:18

置いておいてみんながアクセスできるよう

play02:20

にしましたこれで問題解決かと思いや別の

play02:25

問題が起きましたみんなが同時にコドを

play02:28

自由に触ったり削除や変更を行ったんです

play02:31

するとAさんとBさんが同じファイルに

play02:34

同時にコードを書いて衝突が起きたりC

play02:37

さんが開発していた新機動で起きたバグが

play02:40

全員に共有されてしまったんですこれでは

play02:43

まともなシステム開発はできませんそこで

play02:46

ギットの登場ですまずテックレシピのコド

play02:49

をネット上に置くところまでは一緒ですで

play02:52

もギットを使う場合はこのコードを直接

play02:55

みんなで編集はしません代わりにみんなの

play02:58

パソコンにオリジナルのテックレシピの

play03:00

コードをコピーしますこれによってみんな

play03:02

のパソコンにテックレシピのコピーが

play03:05

それぞれ作られますこのコピーは開発者の

play03:07

数だけ作られますねそしてそれぞれの開発

play03:11

者は自分のパソコンにコピーしてきた

play03:13

コードを編集するんですみんな自分の

play03:16

パソコンにあるコードを編集しているので

play03:18

他の開発者に影響を与えずに作業すること

play03:21

ができますそして最後にそれぞれの開発者

play03:24

が行った変更全てオリジナルに合体させる

play03:27

んですこれがギットを使った数人での開発

play03:30

の大枠ですではもう少し詳細に見ていき

play03:33

ましょうギットではシステムを作るための

play03:36

ファイルや画像などを集めた場所を

play03:38

リポジトリと言いますリポジトリの中には

play03:41

セーブした情報や変更の履歴も含まれてい

play03:44

ますまずはこのリポジトリーを作ってこの

play03:47

中にテックレシピに必要なコードの

play03:49

ファイルや画像を入れていきますそして

play03:52

このリポジトリーをみんなでアクセス

play03:54

できるようにネット上に公開しますこの

play03:56

ネット上に公開されている状態のリポを

play04:00

リモートリポジトリーと言いますリモート

play04:02

リポジトリーがオリジナルですそれぞれの

play04:05

開発者はこのリモートリポジトリーを自分

play04:08

のパソコンにコピーするわけなんですね

play04:10

これで自分のパソコンにオリジナルの

play04:13

コピーとなるリポジトリができますこの

play04:15

自分のパソコンに作ったコピーをローカル

play04:18

リポジトリと言いますローカルってま地方

play04:21

みたいな意味ですけど自分のパソコンの

play04:24

ことを指してるんですね一方のリモートは

play04:26

まリモートワークとか言いますがネット上

play04:29

の離れた場所を挿していますオリジナルで

play04:31

あるリモートリポジトリを直接編集する

play04:34

ことはありません自分のパソコンにコピー

play04:37

してきたローカルリポジトリを編集して

play04:39

いきますでも編集したファイルはあくまで

play04:42

もコピーです例えばAさんのパソコンで

play04:45

新しくログイン機能を作ったとしましょう

play04:47

このままではログイン機能はaさんの

play04:50

パソコンのテックレシピにしか追加されて

play04:52

いませんBさんとC3さらにはオリジナル

play04:55

のテックレシピにはログイン機能はまだ

play04:58

ありませんそこでまずAさんの変更内容を

play05:01

オリジナルに合体させますすると

play05:04

オリジナルにはログイン機能が追加され

play05:06

ますそしてBさんとCさんはこの状態で

play05:10

オリジナルと同期をすることでBさんとC

play05:13

さんのリポジトリーにもログイン機能が

play05:15

追加されるんですAさんが行ったように

play05:17

自分のパソコンで行った変更をオリジナル

play05:20

に同期させることをプッシュと言いますB

play05:23

さんやCさんが行ったようにオリジナルで

play05:26

起きた変更を自分のパソコンのコピーに

play05:28

同期させることプルと言いますなお同期

play05:31

するタイミングで失敗が起きるケースが

play05:34

あります例えばAさんとBさんで全く同じ

play05:37

ファイルの同じ箇所にそれぞれ違った変更

play05:40

を加えたとしますすると同期する時に

play05:43

どっちの変更が正しいのか分からなくなり

play05:46

ますよねこのような状態をコンフリクトと

play05:48

言いますコンフリクトが起きたら衝突して

play05:51

しまったコドを正しい状態に修正する必要

play05:54

がありますこのようにギットを使っていた

play05:56

としても複数人でサービスを作っている

play05:59

場合には同じ箇所を変更して衝突する可能

play06:02

性はありますこれは完全には避けられない

play06:05

のですがなるべく起こしたくないですよね

play06:07

そのための機能もギットにはありますそれ

play06:10

がブランチですブランチとは今作業して

play06:14

いる世界とは別の平行世界を作るような

play06:17

イメージの機能です新しくブランチを作る

play06:20

ことでみんなが作業しているコードには

play06:22

影響を与えずにこの空間で自由に作業する

play06:25

ことができます例えばログイン機能を作る

play06:28

ためにブランチを作りますそしてこの

play06:31

ブランチの中でログイン機能のコドを書い

play06:33

ていきますま途中でバグや問題も起きます

play06:36

がブランチの中であれば本体に影響を

play06:39

与えることはありませんま最悪ブランチを

play06:41

消してしまえばなかったことにもできます

play06:44

ブランチの中でしっかりとログイン機能が

play06:46

動いてくれたら本体と合体させますこれを

play06:49

マジと言いますリモートリポジトリと

play06:52

ローカルリポジトリーの関係と混乱し

play06:54

やすいので1回整理しておきましょう

play06:56

ローカルリポジトリはオリジナルである

play06:59

リモートリポジトリのコピーです開発者の

play07:01

それぞれのパソコンで作られます自分の

play07:03

パソコンで行った変更リモートリポジトリ

play07:07

と同期させるのがプッシュでしたね逆に

play07:09

リモートリポジトリーの変更自分の

play07:12

ローカルリポジトリーに同期させるのが

play07:14

プルですこれはあくまでもリモート

play07:16

リポジトリとローカルリポジトリーは同じ

play07:18

世界で作業をしている状態ですこの世界と

play07:22

は別で新しい世界を作ってそこで作業を

play07:25

する場合にはブランチを作りますブランチ

play07:27

を作って作業をして終わったら元の世界と

play07:31

合体させますこれがマジですねこのように

play07:34

作業をする場所を区切ることで他の人に

play07:36

影響を与えずに安全にサービスを作ること

play07:39

ができるんです最初にお話ししたセーブの

play07:41

機能そして今お話をした安全にサービスを

play07:44

作る機能この2つがあることで多くの現場

play07:47

でギットが使われているんですね特に校舎

play07:50

の機能は複数人で開発をする時に力を発揮

play07:54

しますそのため独学の人は複数人で開発

play07:57

する時に使うなら関係ないやと思って勉強

play08:01

しない人が多いですですが実際の仕事は

play08:04

ほとんどの場合エンジニア複数人で行い

play08:07

ますそのためギッを使えないと話になら

play08:10

ないわけですエンジニアを目指すのであれ

play08:12

ばギッの習得は必須です必ず勉強して使い

play08:15

方に慣れておきましょうちなみにギット

play08:18

以外にもエンジニアを目指したり

play08:20

プログラミングを勉強するなら知っておく

play08:22

べきツールがたくさんありますですがこう

play08:25

したツールを初心者が調べて見つけるのは

play08:28

大変ですそで今回の動画を見てくださった

play08:31

あなたにプログラミング学習における必見

play08:34

のツール35戦を無料でプレゼントします

play08:36

本当は10戦ぐらいにするつもりだったん

play08:39

ですが思っている以上に役立つツールが多

play08:41

すぎて35戦になってしまいました是非

play08:44

こちらの特典を見てプログラミング学習の

play08:47

効率を高めてくださいこちらの特典に興味

play08:50

のある方は概要欄の1番上にあるLINE

play08:53

から受け取ってくださいこの特典以外にも

play08:55

ココのの特典があり全部で10個の特典が

play08:58

無料もらいますこちらの特典ですが途中で

play09:01

変えたり終了する可能性があるため興味の

play09:04

ある方は今のうちに受け取っておくといい

play09:06

かと思いますこの動画が少しでも参考に

play09:09

なったという方はチャンネル登録高評価を

play09:12

是非お願いします最後までご視聴

play09:14

ありがとうございまし

play09:16

[音楽]

play09:25

Rate This

5.0 / 5 (0 votes)

Etiquetas Relacionadas
ギット入門バージョン管理プログラミングチーム開発リポジトリコミットプルプッシュブランチ技術入門
¿Necesitas un resumen en inglés?