もくじ 「.git」というリポジトリを構成するディレクトリが作成されます。 gitで管理しているファイルの変更・追加した状態のファイルや、インデックスという領域に反映されている状態(ステージング)のファイルを確認することができます。 addされたファイルが緑色、まだaddされていないファイルが赤色で表示されます。 変更内容を表示する。 VSCodeなどを使っている場合使う頻度は低いと思いますが、ターミナルでも差分を確認できます。 addする時はファイルのあるディレクトリにいるか確認しておきましょう。カレントディレクトリ配下のファイルが対象になります。カレントディレクトリ関係なくステージングしたい時は また、 一番最初の gitレポジトリを作成した直後、一番最初に実行した git 管理上の状態をもとに戻すコマンドです。 注意点として、 コミットしていないファイルが残っている状態で HEAD:最新コミットの状態 Index:ステージングされている状態 Working Directory:作業している状態 表の通り、 コミットを取り消す場合は コミットメッセージを変更したい場合はオプションを指定します。コミット内容は変更されません。 リモートにアップロードするためのリモートのURLを登録する 仮に以下のように実行します。 これで、コマンドラインにURLを全部打ち込むかわりにoriginという文字列を指定するだけでpushなどができるようになります。 masterの部分はブランチを移動している場合そのブランチ名を打ちます。 間違ってコミットしてしまったときに、revert コマンドを実行すれば打ち消し(上書き)ができます。 間違ったコミットがなくなるわけではなく、元に戻した変更のコミットを新しく作成する、というコマンドです。バージョン管理上ではコミットが増えるだけで通常のコミットと変わりません。そのため元に戻ることも可能です。 3つ目のコマンドは、マージリクエストはしているがまだリモートのmasterにマージされていないブランチをローカルに落としたいときに使用します。マージ前の他人の作業ブランチを確認するときや、自分の作業したマージリクエストのブランチを別のPCで自ら作業したいときなどにも役立ちます。 たとえば、上記のように各ブランチが存在するとしたとき、ローカルではリモートの 複雑にしないために fetchを行うとリモートリポジトリの最新の履歴の取得だけを行うことができます。マージはされないのでローカルの内容が書き換えられることはありません。
fetchした内容を取り込みたい場合はここからmargeをします。 マスターの内容をブランチに反映できます。 マスターに最新をpullし、その最新を切ったブランチに取り込みたい時に使います。 リモートリポジトリの内容を取得し、現在のブランチに取り込む。「fetch」と「merge」を同時に行ってくれる。 クローンしたいディレクトリで実行 変更を待避させる。 復元する際は、引数を指定しない場合退避した作業の中で最新の作業を復元します。 また 確認したあとは「q」を押すと元に戻れます。 コミット(変更履歴)を整理できるコマンド。コンフリクトを解消したい場合にも用いる。 オプション 作業ツリーとインデックスから特定のファイルを削除します。 $ git rm ファイル名orディレクトリ gitを管理している 【 git pull 】コマンド――リモートリポジトリの変更内容を取り込む:Linux基本コマンドTips(382) - @IT git add の取り消し方法と、関連コマンドまとめ | WWWクリエイターズ git rebaseを初めて使った際のまとめ - Qiita https://yu8mada.com/2018/06/07/how-to-use-git-s-fetch-command/ git commit を取り消して元に戻す方法、徹底まとめ | WWWクリエイターズ
git init コマンド
$ git init
git statusコマンド
$ git status
git diffコマンド
$ git diff
git add コマンド
$ git add . // すべてのファイル・ディレクトリ
$ git add -u // 変更されたファイルを追加する
-A
オプションで可能です。git add -A // 作業ツリーすべての変更をステージング
空のディレクトリをaddしたい
git add
は空のフォルダは追加してくれません。フォルダのみを追加したい場合は.gitkeep
ファイルを保管しておく必要があります。add
する前に以下を実行しておきます。cd フォルダ名 // 空のフォルダに移動
touch .gitkeep // キープ用の隠しファイル作成
git rm コマンド
$ git rm --cached
git add
を取り消します。git add
を取り消したい場合、まだHEADの参照が存在しないため、後述のgit reset
を使った取消方法が利用できません。
ステージングを取り消すだけなら--cached
オプションは必ずつけましょう。git reset コマンド
$ git reset // 直近のコミットの取り消し
$ git reset --soft HEAD^ // 直近のcommitの取り消し
$ git reset --mixed HEAD^ // 直近のaddとcommitの取り消し
$ git reset HEAD^ // 同上。 --mixed はデフォルトオプション
$ git reset --hard HEAD^ // add, commit に加えて作業中のファイルも元に戻す
$ git reset コミットID // コミットIDを指定して取消
--hard
は危険なコマンドと覚えておきましょう。reset
を実行すると、前回のコミット以降の修正は消えてしいます。これは、--hard
オプションによって作業ディレクトリの内容を強制的に上書きされてしまうからです。オプションによる対象
オプション
HEAD
Index
Working Directory
--soft
◯
--mixed
(default) ◯
◯
--hard
◯
◯
◯
reset
すると対象の部分がもとに戻ります。例えば、--soft
オプションをつけるとHEAD(commit)の位置がもとに戻り取り消されます。オプションなしであれば、コミットとステージングがもとに戻ります。git commit コマンド
$ git commit -m "コメント" // コメントのつけてコミット
reset
します。くわしくは前項。git reset --soft HEAD^ // 直前のコミットをインデックスに戻す
$ git commit --amend -m "変更したいメッセージ"
git remote add コマンド
$ git remote add リモート名 URL
$ git remote add origin https://www.sample.com
git push コマンド
$ git push origin master // コミットしたファイルをリモートファイルへ更新
例えば、testという名前のブランチの場合↓$ git push origin test
git revert コマンド
$ git revert
& git revert HEAD // 上と同義
& git revert コミットID // 特定のコミットを取り消す
git branch コマンド
$ git branch // ローカルブランチの一覧
$ git branch ブランチ名 //ブランチの作成
$ git branch -d ブランチ名 // ブランチの削除
$ git branch -D ブランチ名 // ブランチの強制的削除
$ git branch -m ブランチ名 // 現在のブランチ名の変更
$ git branch -a // リモートとローカルのブランチの一覧
$ git branch -r // リモートブランチの一覧
git checkout コマンド
$ git checkout ブランチ名 // ブランチの移動
$ git checkout -b ブランチ名 // ブランチを新規作成し、そこに移動する
$ git checkout -b ローカルブランチ名 origin/リモートブランチ名
$ git checkout -t origin/リモートブランチ名 // ローカルにないリモートのブランチを作成し取り込む
オプション
-t
(追記 ’22 06月)$ git checkout -t origin/リモートブランチ名
// origin
main
├── branch_A
├── branch_B
└── branch_C
// local
main
├── branch_A
└── branch_B
branch_C
は存在しません。
branch_C
をローカルに取り込んで作業したい場合「ブランチ作成→移動→取り込み」の一連の作業が発生しますよね。それを一括でできるのがオプションt
です!main
ブランチで実行することを推奨します。$ git checkout -t origin/branch_C
git fetch コマンド
$ git fetch リポジトリ
$ git fetch origin master // リモートのmasterをフェッチ
$ git fetch --all // リモートのすべてのブランチの情報をフェッチ
$ git fetch origin // origin のリモートの情報を取得
git merge コマンド
$ git merge origin/master
git pull コマンド
$ git pull // リモートリポジトリで変更された内容を全て取得し、現在の作業ツリーに反映する
$ git pull origin master // デフォルトブランチの変更内容を取り込む
git clone コマンド
$ git clone [リモートリポジトリパス]
git stash コマンド
$ git stash // 現在の作業を一時的に退避(Gitで追跡しているファイルのみ)
$ git stash save "message" // メッセージを付けて退避
$ git stash -u // 新規ファイル(Gitで追跡していないもの)も含め退避
$ git stash save -u “message” // git stash -u にメッセージを付ける
$ git stash list // 退避の一覧
$ git stash apply stash@{n} // 退避した作業を復元
$ git stash clear // 退避の消去
$ git stash -k // addした変更以外を退避
git stash list
で引数を確認しstash@{1}
のように引数を指定することによって特定の作業を復元することができます。git log コマンド
$ git log //コミットのログが見れる
git rebase コマンド
git rebase ブランチ // このブランチの先にコミットがまとめられます
git rebase -i 派生元コミットID // 派生元(吸収される)コミットを事前に整理する
-i
を実行する場合とは、派生元のコミットで変更箇所が重複していた場合コミットごとに毎回コンフリクトするので、それを回避するためコミットを一つにまとめる際に行います。なので、オプション-i
を実行しなくて良い場合もあり、実行する場合はrebaseの前段階で実行する方が楽です。git rm コマンド
$ git rm ファイル名orディレクトリ名
$ git rm --cached ファイル名orディレクトリ名 // ステージング解除のみ
--cached
オプションをつけてファイルを残した場合、インデックスのみ削除し、作業ツリーファイルはそのまま残されます。Git管理の対象外にしたい場合はこのあと.gitignore
に追記しておきましょう。プロジェクトのGit管理をやめる
$ rm -rf .git/
.git
フォルダを削除するだけでOKです。参考URL