①新しく作業を開始する:
git init
GitHub発ではなく、ローカルPCのWorking TreeをGitで履歴管理を開始したい場合のコマンド。Gitで管理したい対象フォルダに移動した上で実行すればそのフォルダがGitで管理される。
git init 現在所在するフォルダをGit対象にする
git remote
上記のgit initで開始したローカルPCのWorking Treeを、GitHubに紐づけるコマンド。使い方は下記を参照。
programmingforever.hatenablog.com
git remote リモートリポジトリの一覧を出力する git remote add {リモートリポジトリ名} {リポジトリのURL} 対象リポジトリをローカルのリモートリポジトリに追加する git remote rename {旧リモートリポジトリ名} {新リモートリポジトリ名} ローカルの対象リモートリポジトリをリネームする git remote remove {リモートリポジトリ名} 対象リモートリポジトリをローカルから削除する
git clone
GitHubから開発リソースをローカルPCにコピーして修正や履歴管理を行う場合のコマンド。
git clone {リポジトリのURL} 対象リポジトリのデフォルトブランチをクローンする git clone --depth {深さ} {リポジトリのURL} 対象リポジトリのデフォルトブランチを指定したコミット数で切り詰めてクローンする git clone -b {ブランチ名} {リポジトリのURL} 対象リポジトリの対象ブランチをクローンする git clone --recursive {リポジトリのURL} サブモジュールを含む対象リポジトリのデフォルトブランチをクローンする git clone --depth 1 {リポジトリのURL} で、履歴が多いリポジトリをクローンする時間を短縮できます。
②差分やログ確認など
git diff
git diff ワークツリー にあるファイルの差分を出力する git diff --cached インデックス にあるファイルの差分を出力する
git status
git status 変更したファイルの一覧を出力する git status -s git status を短い形式で出力する git status -s -b 短い形式でもブランチとトラッキングを出力する
git show
git show {コミットID} 対象コミットのメッセージとテキストの差分を表示する
git log
git log ログを出力する
③ステージングやコミット、リモートへPUSH
git add
git add {ファイルパス1} {ファイルパス2}... 対象ファイルをインデックス(コミット対象)に追加する git add -A 変更した全ファイルをインデックスに追加する git add -p {ファイルパス} 対象ファイルをハンク単位でインデックスに追加する
git commit
git commit Vimでメッセージを書き、インデックスにある全ファイルをコミットする git commit -m "{メッセージ}" メッセージを付け、インデックスにある全ファイルをコミットする
git push
git push origin {ローカルブランチ名} 対象ローカルブランチを origin にプッシュする git push -d origin {リモートブランチ名} 対象リモートブランチを origin から削除する git push origin {タグ名} 対象タグを origin にプッシュする git push -d origin {タグ名} 対象タグを origin から削除する git push -f 強制プッシュする git push --force-with-lease 強制プッシュする(ブランチのアップストリームが変更されている場合などは拒否する)
git fetch
git fetch origin origin から最新の履歴を取得する git fetch --prune origin リモートリポジトリ上に存在しなくなったブランチなどの参照を削除し、 origin から最新の履歴を取得する
git rm
git rm {ファイルパス} 対象ファイルを 削除し 、Gitの管理外にする git rm --cached {ファイルパス} 対象ファイルを 削除せず 、Gitの管理外にする git rm -r {フォルダパス} 対象フォルダ以下を全削除し、Gitの管理外にする
④履歴管理など
git branch
git branch ローカルブランチの一覧を出力する(チェックアウト中のブランチに * が付く) git branch -a ローカルブランチとリモートブランチの一覧を出力する git branch {ブランチ名} 対象ブランチを新規作成する(チェックアウトしない) git branch -d {ブランチ名} 対象ブランチを削除する git branch -d -f {ブランチ名} 対象ブランチを 強制 削除する git branch -D {ブランチ名} 対象ブランチを 強制 削除する git branch -m {旧ブランチ名} {新ブランチ名} 対象ブランチをリネームする
git checkout
git checkout {ブランチ名} 対象ブランチに切り替える git checkout -b {ブランチ名} 対象ブランチを新規作成し、切り替える git checkout {ファイルパス} ワークツリーにある対象ファイルの変更を取り消す git checkout . ワークツリーにある全ファイルの変更を取り消す
git switch
git switch {ブランチ名} 対象ブランチに切り替える git switch -c {ブランチ名} 対象ブランチを新規作成し、切り替える git switch --detach refs/tags/{タグ名} 対象タグに切り替える git switch --detach {コミットID} 対象コミットに切り替える
git restore
git restore {ファイルパス} ワークツリーにある対象ファイルの変更を取り消す git restore . ワークツリーにある全ファイルの変更を取り消す git restore --source {コミットID} {ファイルパス} 対象ファイルの変更を対象コミットに戻す
git reset
git reset HEAD {ファイルパス} ステージングにある対象ファイルをワークツリーに戻す( git add {ファイルパス} を取り消す) git reset HEAD ステージングにある全ファイルをワークツリーに戻す( git add -A を取り消す)
git revert
git revert HEAD 直前のコミットを元に戻すコミットを作成する git revert {コミットID} 対象コミットを元に戻すコミットを作成する
git rebase
git rebase origin/{ブランチ名} origin にある対象ブランチを、チェックアウト中のブランチへリベースする git rebase --continue リベースを続ける git rebase --abort リベースを強制終了する git rebase --quit リベースを中止する
git merge
git merge origin/{ブランチ名} origin にある対象ブランチを、チェックアウト中のブランチへマージする git merge --squash origin/{ブランチ名} origin にある対象ブランチのコミットをひとつにまとめ、チェックアウト中のブランチへマージする git merge --continue マージを続ける git merge --abort マージを強制終了する git merge --quit マージを中止する
git cherry-pick
git cherry-pick {コミットID} 対象コミットをチェリーピックする git cherry-pick {始点の1つ前のコミットID}..{終点のコミットID} 始点から終点までのコミットをチェリーピックする git cherry-pick {始点のコミットID}^..{終点のコミットID} 始点から終点までのコミットをチェリーピックする git cherry-pick --skip 現在のコミットをスキップして、残りのシーケンスを続ける git cherry-pick --quit 失敗したチェリーピックを取り消す
git stash
git stash list スタッシュの一覧を出力する git stash show スタッシュの変更を出力する git stash push -m "{メッセージ}" メッセージを付け、変更をスタッシュにプッシュする git stash pop スタッシュの変更をワークツリーに戻す(スタッシュから 消える ) git stash apply スタッシュの変更をワークツリーに戻す(スタッシュから 消えない ) git stash drop スタッシュから変更を削除する
git blame
git blame {ファイルパス} 対象ファイル全体の各行ごとに、最後に編集したリビジョンと作者を表示する git blame -L {開始行} {ファイルパス} 対象ファイルの開始行から末尾までを各行ごとに、最後に編集したリビジョンと作者を表示する git blame -L ,{終了行} {ファイルパス} 対象ファイルの先頭から終了行までを各行ごとに、最後に編集したリビジョンと作者を表示する git blame -L {開始行},{終了行} {ファイルパス} 対象ファイルの開始行から終了行までを各行ごとに、最後に編集したリビジョンと作者を表示する
git tag
git tag {タグ名} タグを付ける git tag -d {タグ名} タグを削除する