
本コースの特徴を理解できます。
本コースで使う資料にアクセスできます。
本コースの構成とそれぞれのセクションの学び方を確認できます。
Gitやバージョン管理とはなにか?を理解できます。
Gitのようなバージョン管理システムを使わずにバージョン管理を行う際に発生する問題を見ることで、Gitのようなバージョン管理システムの有用性を理解することができます。
Gitによるバージョン管理の全体像を確認することができます。
Gitのバージョン管理において最も基本となる3つの要素、ワークツリー・ステージングエリア・ローカルリポジトリについて理解できます。
Gitによるバージョン管理の流れを、ワークツリー・ステージングエリア・ローカルリポジトリという3つの要素を中心にして理解できます。
Gitのようなバージョン管理システムを使うことで、バージョン管理システムを使わなかった場合に発生していた問題を解決できることを確認します。
Gitによるバージョン管理の基本のまとめを確認できます。
Gitにおいて、ステージングエリアが果たす役割について理解できます。
Gitにおいて、ステージングエリアが果たす役割について理解できます。
本コースの特徴である、GitのFlash Cardsの使い方を理解できます。
本コースの特徴である、GitのFlash Cardsを効果的に使って長期記憶に残す方法を理解できます。
Gitによるバージョン管理の基本をFlash Cardsで復習できます。
Gitの2つの操作方法である、GUIとCLIについて理解できます。
ソースコードを編集するためのエディタ(atom)をインストールする方法がわかります。
WindowsでGitを動かすための環境構築の方法を解説します。
macOSでGitを動かすための環境構築の方法を解説します。
エディタにatom以外を使う場合に実行が必要なコマンドについて学びます。
Gitを扱う上でまず最初に行うべき、ユーザー登録の方法を理解できます。
実行したディレクトリを、Gitのバージョン管理下におくためのコマンドについて学びます。
Gitでステージングエリアに追加するためのコマンドを学びます。
Gitでコミットを行うためのコマンドを学びます。
Gitでコミット履歴の確認を行うためのコマンドを学びます。
Gitで差分の確認をを行うためのコマンドを学びます。
Gitでステージングエリアへの追加とコミットを同時に行うためのコマンドを学びます。
git diffコマンドの3種類の指定方法について学びます。
Gitのバージョン管理の状態を確認するためのコマンドを学びます。
Gitでワークツリーのすべての変更をステージングエリアに追加するためのコマンドを学びます。
Gitでステージングエリアからファイルを削除するためのコマンドを学びます。
Gitでステージングエリアとワークツリーの両方からファイルを削除するためのコマンドを学びます。
Gitのバージョン管理下に置かないファイルの指定方法について学びます。
.gitignoreの具体的な書き方について学びます。
Gitでバージョン管理下にあるファイルの名前を変更するためのコマンドを学びます。
Gitのコミットを指定する機能を学びます。
Gitのコミットの親子関係を理解できます。
Gitの基本操作のまとめを確認できます。
Gitでコミットを行うべきタイミングを理解できます。
Gitの基本操作をFlash Cardsで復習できます。
Gitで共同作業を行う際のイメージを、粘土の例え話で理解できます。
Gitのブランチという機能を理解できます。
Gitでブランチを一覧表示するコマンドについて学びます。
Gitのブランチの2種類の役割である、トランクとトピックブランチについて学びます。
Gitのマージという機能について学びます。
Gitでブランチを新規作成するコマンドについて学びます。
Gitでブランチを切り替えるコマンドについて学びます。
Gitでブランチを切り替えるコマンドについて学びます。
Gitでマージを行うコマンドについて学びます。
Gitでマージした時に発生しうる、コンフリクトについて学びます。
Gitで手動でコンフリクトを解消する方法について学びます。
Gitでブランチを削除するコマンドについて学びます。
Gitでブランチの名前を変更するコマンドについて学びます。
Gitでマージを行った時に、コンフリクトが発生しないケースについて学びます。
Gitでブランチの作成と作成したブランチへの切り替えを同時に行うコマンドについて学びます。
ブランチとマージの基本のまとめを確認できます。
Gitを実際に使っていく上での、ブランチの使用上の注意点を理解できます。
ブランチとマージの基本をFlash Cardsで復習できます。
ここからGitの詳しい仕組みについて学んでいきます。
Gitを深く理解する上で必須の概念である、ポインタという観点でコミットを理解できます。
これまでに見てきたHEADやブランチなどのGitの機能もポインタであることを理解できます。
.gtiディレクトリの中にあるファイルを見ることで、HEADの理解をさらに深めることができます。
これまでに見てきたGitコマンドを、ポインタという観点で再確認することができます。
これまでに見てきたGitコマンドを、ポインタという観点を知った上で、シェルの出力を見ながら再確認します。
git checkoutコマンドをHEADを移動する機能として捉え直します。
git checkoutコマンドを用いて、指定したコミットの内容をワークツリーに反映する方法について学びます。
Gitのdetached HEADという概念について学びます。
Gitで一度行ったコミットを取り消す2つの方法を理解できます。
GitでHEADとHEADが指すブランチを移動することができるコマンドについて学びます。
git resetコマンドのオプションについて学びます。
Gitで変更を打ち消すコミットを追加するコマンドについて学びます。
git resetとgit revertの使い分けについて学びます。
Gitの早送りマージという機能について学びます。
Gitで早送りマージを行うためのコマンドについて学びます。
Gitで早送りマージできる状況でも、3wayマージを行うためのオプションについて学びます。
Gitで勘違いしやすい、ブランチの削除について深掘りします。
Gitの理解を深めるためのクイズに取り組みます。
Gitの仕組みを理解しようのまとめを確認できます。
Gitの仕組みを理解しようの内容をFlash Cardsで復習できます。
ここからGitの便利機能について学んでいきます。
Gitでヘルプを確認するためのコマンドについて学びます。
git logコマンドの便利なオプションについていくつか学びます。
GitでコミットをHEADを基準に指定する方法について学びます。
Gitのコミットにわかりやすい名前をつける、タグという機能について学びます。
Gitでコミットに注釈付きタグをつけるためのコマンドについて学びます。
Gitに限らない、ソフトウェア製品のバージョン番号の付け方について学びます。
Gitでタグを削除するコマンドについて学びます。
Gitでワークツリーの内容を一時退避するコマンドについて学びます。
Gitのスタッシュから、ステージングエリアの内容も含めて取り出すコマンドについて学びます。
Gitのスタッシュのデータ構造を理解できます。
Gitのスタッシュに退避させた変更を削除するコマンドについて学びます。
Gitの操作履歴を表示するコマンドについて学びます。
Gitでバグを入れた犯人探しをするコマンドについて学びます。
Gitの便利機能を学ぼうのまとめを確認できます。
Gitの便利機能を学ぼうの内容をFlash Cardsで復習できます。
Gitの2種類のリポジトリである、ローカルリポジトリとリモートリポジトリについて学びます。
Gitが分散型のバージョン管理システムであることを理解できます。
Gitと一緒に使われる、GitHubというサービスについて学びます。
GitHubを用いた開発の全体像について学びます。
GitHubを用いた開発にはどのような特徴があり、その特徴はどういうメリットをもたらすのか確認できます。
GitHubのアカウントを作成する方法を確認できます。
GitHubを用いた開発フロー、GitHubにリポジトリを作成する方法を学びます。
GitHubを用いた開発フロー、GitHubに作成したリポジトリをローカルにクローンする方法を学びます。
GitHubを用いた開発フロー、Gitのpushという機能について学びます。
Gitでpushを行うためのgit pushコマンドを学びます。
Gitのリモート追跡ブランチについて学びます。
Gitのリモート追跡ブランチと通常のブランチにはどのような違いがあるのか理解できます。
GitHubを用いた開発フロー、Pull RequestというGitHubの機能について学びます。
GitHubからPull Requestを送る方法を理解できます。
GitHubのPull Requestを送るべきタイミングについて理解できます。
Gitでpushする際に上流ブランチを設定してpushするコマンドについて学びます。
Gitの機能であるfetchについて理解できます。
Gitでfetchを行うためのコマンドを学びます。
git fetchコマンドの引数を省略した場合の動作と、上流ブランチを確認するためのコマンドについて学びます。
Gitでfetchしてきたブランチをローカルのブランチに早送りマージする方法について学びます。
git fetchとgit mergeを同時に行うコマンドである、git pullコマンドについて学びます。
fetchをした後に、早送りマージができない場合の動作について理解できます。
GitのFETCH_HEADというポインタについて理解できます。
GitHubを用いた開発フロー、リモートリポジトリでマージを終えたブランチを削除する方法について学びます。
Gitでリモート追跡ブランチを削除する方法を学びます。
ここまでみてきたGitコマンドの引数を省略したときの動きについて学びます。
リモート追跡ブランチやFETCH_HEADの実態を、.gitディレクトリの中身から確認します。
GitHubリポジトリの編集権限を持つコラボレーターを追加する方法を学びます。
Git・GitHubを用いた共同開発のまとめを確認します。
Git・GitHubを用いた共同開発の内容をFlash Cardsで復習できます。
GitHubでOSSに貢献するとはどういうことなのか理解できます。
ソースコードを追加するだけでない、GitHubを用いたOSSへの貢献の種類を知ることができます。
GitHubを用いたOSS開発がどのような流れで行われるのかを理解できます。
OSSのリポジトリを自分のGitHubアカウントにコピーする、Forkについて学びます。
自分のGitHubアカウントにForkしたリポジトリをローカルにcloneしてトピックブランチで開発をおこないます。
開発を終えたトピックブランチをpushして、OSSリポジトリにPull Requestを送ります。
GitHubでOSSに貢献する方法のまとめを確認できます。
Gitのrebaseという機能がどのような問題を解決できるのか確認します。
Gitのrebaseとはどのような機能なのか理解できます。
Gitのrebaseを理解する上で欠かせない、cherry-pickについて学びます。
Gitでcherry-pickを行うためのコマンドを学びます。
Gitでcherry-pickを行う際に、自動でコミットを追加しないようにするオプションについて学びます。
Gitのrebaseの仕組みをcherry-pickを元に、完全理解します。
Gitでrebaseを行うためのコマンドを学びます。
Gitのrebaseはどんな場面で役立つのかを理解できます。
Gitのrebaseとmergeの性質の違いを確認します。
ここまでみてきたGitのpullやpushのアルゴリズムを詳しく学びます。
Gitの2つのコミットの取り消し機能である、resetとrevertの比較を行い、なんでrevertの方が共同開発においては安全なのかを理解できます。
Gitのrebaseとmergeの使い分けの方針を理解できます。
rebaseを用いた、GitHubのOSS開発のフローの完全版を学びます。
Gitで既存のローカルリポジトリに、リモートリポジトリを追加するコマンドについて学びます。
OSSリポジトリで伸びたメインブランチを、ローカルリポジトリにpullしてrebaseします。
rebaseしたトピックブランチを自分のGitHunアカウントのリポジトリに強制プッシュします。
rebaseを完全理解しようのまとめを確認できます。
rebaseを完全理解しようの内容をFlash Cardsで復習できます。
Git・GitHub100本ノックのシャッフル版です。
本コースは、「Gitの知識を長期記憶に焼き付けて忘れないようにする」ためのコースです。
あなたは、Gitを使いこなせていますか?なんとなくで使っていませんか?
Gitは世界でいちばん使われているバージョン管理システムです。
Gitを開発に取り入れることで、バージョン管理が楽になるうえに、チーム開発がスムーズにできるようになるので、
Gitを導入しているかどうかで、チーム開発の生産性は大きく変わってきます。
そのため、今や開発の現場のほとんどにはGitが導入されており、
Gitを知らずして開発チームに参加することは、もはや不可能になりつつあります。
なので、すべてのエンジニアが身につけておくべき基本のスキル、それが本コースのテーマである「Git」です。
ですが、「Gitのスキルはすでに身につけている!」と自信を持って言える方は少ないのではないでしょうか?
それもそのはずで、Gitは使いこなせるようになるのが、とてもむずかしいスキルだからです。
その証拠として、Gitに関する記事はGoogle検索するとたくさん出てきますが、
記事を書いた人の間違った理解で、正しくない情報が書かれているGitの記事が驚くほど多いです。
Gitを身につけるのがむずかしい理由は、
コマンド操作が直感的じゃないからおぼえづらい
コマンドの裏でなにが起こっているのかイメージできない
ブランチなどの仕組みが複雑でむずかしいから理解できない
Gitに加えてGitHubも覚えなきゃいけないから混乱する
などなど、挙げればきりがありません。
このような理由から、Gitを使うたびにコマンドや機能をGoogle検索していたり、
なにが裏側で起こっているか理解してないコマンドをおそるおそる(時には祈りながら?)使っている方も多いのではないでしょうか?(私もそうでした汗)
そのうえ、Googleでヒットした記事が信頼に足るものかわからないとなると、もうお手上げです。
そんなあなたのために、「Gitの基本を深く理解して、ぜったいに忘れないための教材を作りたい」。
そういった想いから、このGit入門コースはできあがりました。
Gitを深く理解してぜったいに忘れないようにするため、本コースにはさまざまな工夫を凝らしました。
①「300枚」のスライド図解でコマンドの動きがイメージできる
②「100問以上」のフラッシュカード式の演習問題で長期記憶にこびりつく
③「暗記がいらなくなるレベル」の理解を目指した、丁寧でごまかしのない解説
①「300枚のスライド図解」でコマンドの動きがイメージできる
Gitがむずかしいとされるいちばんの理由は、「裏側でなにが起こっているかわからない」ということかと思います。
Gitを使いこなせない人は多くの場合、コマンドを実行した時に裏側でなにが起こるのかを理解できていません。
なので本コースでは、
コマンドの裏側で起こっていることをイメージしやすいように、約300枚の図解スライドを用意しました。
そのままでは無機質でわかりづらいコマンドも、図解とセットで学べばわかりやすくなります。
また、コマンドをイメージで理解できるようになるので、コマンドの暗記もかなり楽になります。
裏側で何が起こっているかを、図解・イメージできちんと理解することによって、
これからは自信をもってGitを操作できるようになっていきましょう。
②「100問以上」のフラッシュカード式の演習問題で長期記憶にこびりつく
長期記憶に残すうえで一番重要なのは、「演習問題」を解くことです。
認知心理学においては「検索練習」とも呼ばれますが、これが現時点で最強の学習方法です。
本コースでは、確実に記憶に焼き付けるために、100問以上の演習問題を用意しています。
そして本コースで扱ったすべての内容は、フラッシュカード式の演習問題として復習することができます。
学んだ順番だけでなく、シャッフルされた順番のフラッシュカードも用意しています。
フラッシュカードによる演習を繰り返して、効率的に覚えていきましょう。
③「暗記がいらなくなるレベル」の理解を目指した、丁寧でごまかしのない解説
あなたの学生時代を思い出してみてください。数学がめちゃくちゃできる同級生に話を聞いたら、
「公式は暗記してない。毎回導出している。」と言われて驚いたことはありませんか?
この話からもわかるように、とことん深く理解すると暗記がいらなくなります。このコースが目指しているのは、そのレベルの深い理解です。
例えば、あるコマンドを説明する上で、ただ単に機能を紹介するだけでなく、
「なぜこの機能が必要なのか?」「いつ使うのか・使わないのか?」というところを曖昧にせず解説しています。
「コマンドを覚えられない、、」という人に話を聞くと、暗記以前にそもそもあまり理解ができていないケースも多々あります。
暗記の前の理解は必須です。しっかり理解して暗記の労力を最小化しましょう。
こういった様々な工夫によって、Gitをゼロからわかりやすく学びたい方はもちろん、
GitやGitHubをまだ満足に使いこなせていないすべての方に最適な教材に仕上がったのではないかと思います。
そしてこの業界では珍しく、Gitは一度学んでしまえば長い間使える知識です。
Gitは今後もしばらく使われるものですし、他の分野と違ってコマンドの変更も少ないです。
せっかく長く使える知識なら、なんとなく学んだだけの、付け焼刃の知識にしておくのではなく、
長期記憶に焼き付けて一生モノのスキルを手に入れませんか?