Gitをゆっくり学ぶ方法

How to learn Git slowly.の表紙画像

この記事は私のブログにもあります。

この投稿は、本当に頭が良いのにGitが苦手な私の妻に捧げます。

私はしばらくウェブ開発の生徒たちを指導してきました。だから初心者がよく犯す間違いを見る最前線にいます。

以前、CSSの学習を始める方法についての記事を書きました - CSS初心者にはとてもいい読み物です。

さて、Gitをマスターする番です。Gitは…マスターするのは簡単ではありません。

関連するXKCD:
画像

これが初心者が簡単に混乱する理由です。そして間違いは高くつくことがあります:誰もが自分の同僚の作業を削除した「あの人」になりたいわけではありません。

Gitを学ぶ最良の方法は徐々にです。本物のGitマスターになるまでにはかなりの時間がかかることがあります。

このガイドはあなたの学習を簡易に、よく噛んで分かりやすいステップで整理することで旅を簡単にしようと思っています。次のステップに進む前に、必ずそれぞれのレベルを完全にマスターしてください!

I - 基本的な個人利用

これらのツールを使えば、あなたの個人的な用途でGitを使うことができます。今はブランチにはこだわらず、すべてMain上で行いましょう。

完璧に理解すべき概念:

- GitとGithubの違いは何ですか?
- コミットとは何ですか?
- ステージングフェーズとは何ですか?
- ブランチとは何ですか?
- リモートリポジトリとローカルリポジトリの違いは何ですか?
- どうやって一つまたは複数のリモートリポジトリに設定しますか?
- コミットの方法は?
- アップストリームリポジトリへのプッシュ/プルはどうやって行いますか?

Enter fullscreen mode Exit fullscreen mode

完璧に知っておくべきコマンド:

git init
git clone <リポジトリ>
git status
git add <ファイル>
git add --all
git commit
git remote add
git remote set-url
git remote -v
git push <リポジトリ> <ブランチ>
git pull <リポジトリ> <ブランチ>

Enter fullscreen mode Exit fullscreen mode

II - 基本的なツール

これらのツールを使えば、Gitを仕事の道具としてもっと快適に使えるようになります。設定についても少し学ぶ必要があります。

完璧に理解すべき概念:

- .gitignoreファイル
- .gitconfigファイル
- コミットログの閲覧
- Reset、Clean、Checkout <ファイル>、Rmによるファイル操作
- Stashによるリポジトリ操作

Enter fullscreen mode Exit fullscreen mode

完璧に知っておくべきコマンド:

git log (with and without --stat)
git checkout <ファイル>
git reset <ファイル> (危険!)
git reset --hard (危険!)
git clean -f (危険!)
git rm <ファイル> (危険!)
git config --global user.name
git config --global user.email
git stash
git stash apply
git stash clear (ちょっと危険)

Enter fullscreen mode Exit fullscreen mode

III - 基本的な共同作業

これをマスターすれば、他の人と共同で作業を始めることができます。共同作業を試みる前に、このレベルをマスターしている必要があります。

完璧に理解すべき概念:

- ブランチ:それが何か、なぜ存在し、どのように使用するか。
- マージ
- ブランチ名命名の規約
- 良いコミットメッセージの書き方
- フォークされたリポジトリとは何か?

Enter fullscreen mode Exit fullscreen mode

完璧に知っておくべきコマンド:

git merge
git branch
git checkout <ブランチ>
git checkout -b
git blame <ファイル>

Enter fullscreen mode Exit fullscreen mode

IV - 基本的な共同作業: Rebase & Pull requests

協力的なブランチへのリベース全体を別に置いておくのですが、これはリモートリポジトリを損傷する可能性のある最初のコマンドを追加します:git push --force-with-lease

実際、あなたがローカルブランチをリベースする場合、このオプションを使って遠隔リポジトリにプッシュする必要があります。それは危険ですが、チームでの共同作業の一部をマスターする必要があります。

ここにプルリクエストも追加します。なぜなら重要な概念ですが、それは実際にはGitよりもGithub/Gitlabの概念です。

完璧に理解すべき概念:

- シンプルなリベース(マージとの違い)
- プルリクエストとは何か?
- ブランチからブランチへのPRの作成方法
- オリジナルリポジトリからフォークへのPRの作成方法

Enter fullscreen mode Exit fullscreen mode

完璧に知っておくべきコマンド:

git rebase
git push --force-with-lease (危険!)

Enter fullscreen mode Exit fullscreen mode

V - 有能なレベル

このレベルに到達すると、作業履歴をよりよく整理し、ブランチを整理し、履歴の中を簡単にナビゲートできます。

完璧に理解すべき概念:

- どうやってローカル履歴を書き直すか
- インタラクティブにリベースする方法
- ブランチ管理(プルーン、フェッチ)
- HEAD表記またはコミットハッシュの使用
- Diffを使ってコミットを比較する方法
- コミットを元に戻す方法

Enter fullscreen mode Exit fullscreen mode

完璧に知っておくべきコマンド:

git commit --amend
git rebase -i
git prune
git fetch
git remote prune
git checkout HEAD/HEAD~1/<コミットハッシュ>
git diff <コミットハッシュ 1> <コミットハッシュ 2>
git revert <コミットハッシュ>

Enter fullscreen mode Exit fullscreen mode

VI - 上級レベル

このレベルになると、あなた自身や他人が何かを台無しにした場合に修正できます。

完璧に理解すべき概念:

- reflogとは何か?
- リポジトリから機密データをクリーンアップする方法
- 効果的に不良コミットを探す方法

Enter fullscreen mode Exit fullscreen mode

完璧に知っておくべきコマンド:

git reflog
git-filter-branch
git-filter-repo
git bisect

Enter fullscreen mode Exit fullscreen mode

git-filterコマンドの素晴らしい代替として、BFGの使用をお勧めします。

まとめ

このガイドが、初めてGitを学ぶという険しい道をナビゲートするのに役立ったことを願っています。

もしあなたが日常的に使っている重要なコマンドを忘れていたら、教えてください!

この記事が気に入ったら、コーヒーを買ってください! ☕

楽しいコーディングを!

こちらの記事はdev.toの良い記事を日本人向けに翻訳しています。
https://dev.to/samuelfaure/how-to-learn-git-slowly-38fa