各種基礎コマンド
管理しないファイルをGitからの除外
●管理しないファイルをGitから外す
.gitignoreファイルを作成する
↓
ファイルの中に記載されたファイルやディレクトリ等は外される
・ファイル名を記載
・(ディレクトリ名)/
・//.css
変更の取り消し
●ファイルへの変更を取り消す(ワークツリーの内容を前回addした状態に戻したい時)
ワークツリーの情報を、ステージの内容に合わせる
$ git checkout — <ファイル名>
$ git checkout — <ディレクトリ名>
□全ての変更を取り消す
$ git checkout — .
●ステージにaddした内容を取り消したい時(前回のcommit内容に戻る。ワークツリーの内容は変わらないので、ワークツリーも戻したい場合は上記のコマンドを入力)
$ git reset HEAD <ファイル名>
$ git reset HEAD <ディレクトリ名>
□全てのadd内容を最新commit情報に戻す
$ git reset HEAD .
●上記2パターンを一つのコマンドでで行いたい時
▽git reset HEADと同意
$ git restore -S <ファイル名>
$ git restore -S <ディレクトリ名>
↓
▽git checkoutと同意
$ git restore <ファイル名>
$ git restore <ディレクトリ名>
□全てのadd内容を最新commit情報に戻し、ワークツリーも元に戻す
$ git restore -S .
↓
$ git restore .
●直前のコミットを取り消したい時(リモートリポジトリにpushファイルは、やり直してはいけない)
$ git commit —amend
$ git commit —amend -m (コミットメッセージ)
リモートリポジトリからの情報取得
●設定しているリモートリポジトリの情報を表示する
$git remote
$git remote -v
(URLを表示)
●リモートリポジトリから情報を取得する(fetch)
$ git fetch <リモート名>
この段階ではワークツリーには反映されない
↓
$ git merge <リモートリポジトリ名>/<ブランチ名>
$ git merge origin/master
●リモートリポジトリから情報を取得し、マージする(pull)
誤って使うと、想定しないブランチにmergeされてしまうので注意
$git pull <リモートリポジトリ名>/<ブランチ名>
□変更等なく単純に最新情報のみ取得したい時は、—rebaseオプションをつけると、mergeコミットが残らないので履歴がきれいになる。
$git pull —rebase <リモートリポジトリ名>/<ブランチ名>
・PC全体でpullの時はrebaseにする方法 $git config —global pull.rebase true
・mainブランチの時のみrebaseにする方法 $git config branch.main.rebase true
□上記コマンドは省略可能
$ git pull
□下記コマンドと同じ意味
$git fetch origin master
$git merge origin/master
●リモートリポジトリの名称変更
$ git remote rename <旧リモート名><新リモート名>
●リモートリポジトリの削除
$ git remote rm <リモート名>
ブランチについて
●ブランチを新規追加する
$ git branch <ブランチ名>
●ブランチの一覧を表示する
$git branch
$git branch -a
●ブランチを切り替える
$git checkout (既存ブランチ名)
□ブランチを新規追加して、切り替える
$git branch -b checkout (ブランチ名)
merge,commitについて
●変更履歴をマージする
$ git merge (ブランチ名>
$ git merge <リモート名>/<ブランチ名>
□コンフリクトが発生した場合
<<<<<<<HEAD
(HEADの情報)
======
(mergeしようとしたブランチの情報)
>>>>>>>(ブランチ名)
上記のようにコンフリクト情報が表示れるため、表示されたら修正し改めてaddとcommitを行う。
●ブランチ名を変更する
$git branch -m <ブランチ名>
●ブランチを削除する(pushした後に、ブランチが必要と無くなった場合などに使用)
$git branch -d feature
$git branch -D feature
(強制削除)
●リベースで履歴を整えた形でmergeする
(pushした後のブランチに関しては使用NG)
$ git rebase <ブランチ名>
例)mainブランチがリリース用で、developコマンドが開発用ブランチだった場合
developブランチで
$git rebase main
そして、mainブランチに移動し
$git merge develop
を行う(ファストフォワード)
・Pushしていないローカルの変更はrebase
・履歴を明示的に残したいorコンフリクト置きそうな時はmerge
がおすすめ
●コミットをきれいに書き換える(Git HubにPushしていないコミットのみ)
□ 直前のコミットを書き換える
$ git commit —amend
□ 複数のコミットをやり直す
$ git rebase -i <コミットID>
例)$git rebase -i HEAD~3
上記コマンド入力すると、エディタが立ち上がる
例)
pick 5ccfca5 1.txtを追加
pick b265b3a 2.txtを追加
pick 1c449d9 3.txtを追加
・pickの部分を、editに編集するとコミットメッセージの変更
・pickの部分を、squashに編集(2つ以上)するとコミット履歴の統合
・行を削除するとコミット内容や、それに伴う情報が削除される
・コミットの情報を修正したい時は、editに書き換え、$git reset HEAD^と入力しHEADの情報を削除し、addからやり直す
タグを作成する
●タグを作成する(リリースポイント等に使用)
$ git tag -a <タグ名> -m “<メッセージ>”
例)$ git tag -a 20230112_01 -m “version 1.0”
●タグをリモートリポジトリに送信する
$ git push <リモート名> <タグ名>
□全て送信する
$ git push origin —tags
作業を避難する
●作業を一時避難する(作業が途中でまだコミットしたくないけど、別のブランチで作業したい時)
$ git stash
●避難した作業を確認する
$ git stash list
●避難した作業を復元する
□ 最新の作業を復元する
$ git stash apply
□ステージの状況も復元する
$ git stash apply —index
□ 特定の作業を復元する
$ git stash apply <スタッシュ名>
例)$ git stash apply stash@{1}
●避難した作業を削除する
□最新の行を削除する
$ git stash drop
□特定の作業を削除する
$ git stash drop <スタッシュ名>
□ 全作業を削除する
$git stash clear