目次
- GitとGitHubの関係について
- gitコマンドとは
- ローカル上での修正準備
- ローカル上に資材が存在しない場合
- 新規資材のクローン
- ローカル上に資材が存在する場合
- 最新情報を取り込む
- 別ブランチを取り込む
- 特定のコミットのみ取り込む
- ローカル上に資材が存在しない場合
- ローカル上の変更をリモート上に送る
- 知っていて便利だったコマンド
- フルパスを指定してコマンド実施
- コミットメッセージに改行やタブなど特殊文字を含める
- ステージングしたファイルを取り消す
- ステージされてない変更を破棄
- 直前のコミットメッセージを修正
- コミット履歴を合わせる
- コミット履歴の編集画面でよく使うコマンド
- コミットメッセージに改行やタブなど特殊文字を含める
GitとGitHubの関係について
Gitとは、ソースコードやファイルの変更履歴をローカル上で記録・管理するためのツールです。
一方、GitHubとは、ソースコードやファイルの変更履歴をクラウド上で保存・共有・管理できるWebサービスで、Gitがなければ使用することができません。
つまり、Gitのローカル上で管理する変更履歴を、リモート上で共有・管理するためにGitHubを使うというイメージです。
gitコマンドとは
gitコマンドとは、GitやGitHubを操作するための命令文です。
ローカル上での修正準備
ローカル上に資材が存在しない場合
- 新規資材のクローン
# ①コピーしたいディレクトリでGit Bashを開く
# ②クローン
git clone -b 【リモート上のブランチ名】 【URL】
# ③コピーした資材に移動
cd 【コピーした資材】
# ④新しいブランチを切って移動
git checkout -b 【ローカル上に作成したいブランチ名】
ローカル上に資材が存在する場合
(新しいブランチを切って作業する場合も類似)
- 最新情報を取り込む
# ①リモート上の最新の情報を取得
git fetch origin 【取得したいブランチ名】
# ②最新にしたいブランチに切り替える
git checkout 【最新にしたいブランチ名】
# ③取得した情報をマージする
git marge origin/【取り込みたいブランチ名】
- 別ブランチを取り込む
# ①リモート上の最新の情報を取得
git fetch origin 【取得したいブランチ名】
# ②リモート上のブランチ一覧を取得
git branch -r
# ③マージしたいブランチに切り替える
git checkout -b 【ローカル上のブランチ名】 orign/【リモート上のブランチ名】
- 特定のコミットのみ取り込む
# ①取得したいコミットがあるブランチに移動
git checkout 【取得したいブランチ名】
# ②ログを確認(取得したいコミットのコミットハッシュ値を確認)
git log (--oneline)
# ③マージしたいブランチに移動
git checkout (-b) 【マージしたいブランチ名】
# ④取得したいコミットを選択
git cherry-pick 【コミットハッシュ値】
# ⑤変更をリモートに反映
git push origin 【反映したいブランチ名】
ローカル上の変更をリモート上に送る
# ①編集(modified)・追加(untracked)・削除(deleted)したファイルが
# Changes not staged for commit
# の下に表示されることを確認
git status
# ②変更した内容に誤りがないことを確認
git diff
# ③変更をステージングする
# 変更の全てをステージングする場合
git add .
# 変更の一部をステージングする場合
git add 【ファイル名】
# ④ステージングしたファイルが
# Changes to be committed
# の下に表示されることを確認
git status
# ⑤ステージングした変更を履歴として保存
git commit -m "コミットメッセージ"
# ⑥コミットメッセージが合っていることを確認
(q:閉じる)
git log
# または
tig
# ⑦変更履歴をリモート上に送る
git push origin 【リモート上のブランチ名】
知っていて便利だったコマンド
フルパスを指定してコマンド実施したい
git -C 【ファイルのコピー先+ファイル名】 【実施したいコマンド】
コミットメッセージに改行やタブなど特殊文字を含めたい
git commit -m $'…'
改行の場合だと…
git commit -m $'…¥n…'
ステージングしたファイルを取り消す
git restore --staged 【ファイル名】
ステージされてない変更を破棄
(ステージング済みには影響しない)
git checkout -- 【ファイル名】
直前のコミットメッセージを修正
# ①直前のコミットを上書きする
git commit --amend -m "修正後のコミットメッセージ"
# ②変更履歴を強制的にリモート上に送る
git push --forse-with-lease origin 【リモート上のブランチ名】
コミット履歴を合わせる
# ①コミットハッシュ値を確認
git log --oneline
# ②コミット履歴の編集画面を開く
git rebase -i HEAD~【最新から合わせたいコミット履歴までの個数】
# ③合わせたい履歴のうち1番古い履歴以外のpickをfに修正
# ④想定通りに修正できたかの確認
git log --oneline
# または
tig
# ⑤変更履歴を強制的にリモート上に送る
git push --forse-with-lease origin 【リモート上のブランチ名】
- コミット履歴の編集画面でよく使うコマンド
| 用途 | コマンド | 説明 |
|---|---|---|
| 変更なし |
pickまたはp
|
コミットを変更せず適用 |
| コミットメッセージの修正 |
rewordまたはr
|
コミットメッセージのみを修正 |
| 前のコミットに統合 |
fixupまたらf
|
コミットを統合 (メッセージは前のものだけ残す) |