本記事の目的
本記事ではgitについて学んだこと、よく使うコマンドなどを紹介します。
対象者: gitを触り始めた方
gitとは
分散型バージョン(変更履歴)を管理システム
GitHub、Sourecetree、AWS codecommitなどgitのサービスはいくつかあり、チーム事情や会社によってことなります。
まず理解しておくと良いもの
git-flow、GitHub Flowを理解しておくとイメージがつきやすいです。
参考ページはこちら【図解】git-flow、GitHub Flowを開発現場で使い始めるためにこれだけは覚えておこう
イメージ
先輩エンジニアに聞いてみるとだいたい川に例えて説明してもらうことが多い印象です。
本流:(masterブランチやmainブランチといわれるもの)
支流:作業用ブランチ(Topic branch)
本流は流れを止まってはいけない(止まってもいけない)もので、必ず動いている状態を維持しておくことが大事。本流で作業をすることはチーム開発など現場ではやらないです。支流に対していろんな機能を作成して完璧に動くことを確認して、本流へ合流させることを前提とします。
なぜ本流で作業をしないほうがいいのか
本流(master)を汚染してはならない。汚染度合いは、自動テストが十分に存在しているのであれば、自動テストが全て通るかどうかで判断できる。支流は一時的に汚染される(通らない自動テストが存在する)ことがありうるが、本流に合流させるときには浄化処理を済ませて置く(全てのテストが通る状態に修正する)必要がある
元からあったテストが通れば良いというだけでなく、基本的には、追加/修正したコードに対する十分なテストを常に追加すべきである。
よくみるチーム開発の設計
実際のプロジェクトやチーム開発では本流は限られたひと(リーダー職)が管理し、メンバーは作業ブランチで作業し、本流への合流は確認作業(Pull requestと呼ばれます)を行ってから実施します
よく使うgitコマンドの紹介
そのまえに
ヘルプコマンドの利用する癖をつけるといいです。
git help <サブコマンド>
最終的には、helpの内容を読んだだけで使い方が理解できるようになるのが望ましいです
(調べた情報や書籍の情報は古くなってたりするため)
ローカルリポジトリの作成
git init //初期化
git add . //現在あるファイル全部追加
git commit -m "initial commit" //最初のコミットメッセージ
リモートリポジトリからプロジェクトをコピー
git clone [リモートリポジトリパス] 例)git@github.com:hogehoge/GitHub.git
ファイル更新までの基本手順
git add [変更/追加したファイル名]
もしくは
git add .(全部あげてもいい)
git commit -m "コメント"
git push origin 【branch名】
ブランチの作成/移動/削除/変更/一覧
git branch [branch_name] //ブランチの作成
git checkout -b 【branch名】//新しいブランチを作成して移動する
git branch -d [branch_name] //ブランチの削除
git branch -m [branch_name] //現在のブランチ名の変更
git branch // ローカルブランチの一覧
git branch -a //リモートとローカルのブランチの一覧
git branch -r //リモートブランチの一覧
リモートブランチの確認(urlも表示)
git remote -v
今やってる作業を一時退避する
git stash
git stash pop //戻す場合
git stash list //退避の一覧
git stash clear //退避の消去
ログ表示
git log //コミットのログが見れる
git log -p
git log --oneline
git reflog //いろいろ見れる
git reflog origin/branch_name //pushのログが見れる
差分チェック
git diff
git diff HEAD^ //最後のコミットからの差分を表示
git diff --name-only HEAD^ //差分ファイルを表示
git diff file1.txt file2.txt //特定ファイルの差分
参考資料
【Git】基本コマンド
まとめ
まだ自分も経験不足ですが、この記事も少しずつ更新していきます。
誰かのお役に立てたらうれしいです。