#author("2022-04-20T15:33:34+09:00","default:k1rou","k1rou") #author("2022-04-20T15:48:34+09:00","default:k1rou","k1rou") *Gitコマンド [#z36d34e7] **Gitの設定 (config コマンド) [#ra705d1c] -種別の指定(設定範囲) --システム全体(--system) --ユーザーの全リポジトリ(--global ) ---ユーザーのホームディレクトリの.gitconfig に設定が書き込まれる。 --ローカルリポジトリのみ(--local) ---ローカルリポジトリの.git/config に設定が書き込まれる。 -設定を確認する --設定を一覧表示(--list) git config --system --list git config --global --list git config --local --list -設定を変更する git config [種別] user.name "[ユーザー名]" ※英字[Firstname Familyname]表記 git config [種別] user.email [メールアドレス] git config [種別] push.default simple ※デフォルト(Git2.0以降) git config [種別] core.editor [エディタの起動コマンド] **ローカルリポジトリ上のみの操作 [#m4f6cdfd] ***init [#t9668391] -Gitリポジトリを新規作成する。 -.git ディレクトリが作成される。 git init git init [ディレクトリ] ***status [#u4e5e143] -状態を確認する git status ***add [#n45fa89a] -ローカルレポジトリにファイルを追加する。 -.git/index にファイルが追加され、リポジトリの管理対象になる。 git add [ファイルのパス] git add . ※全てのファイル ***rm [#w0a84e50] -.git/index に追加されたファイルを削除する。 -ファイルをリポジトリとワーキングコピーから削除する。 -.git/index に追加後にコミットしていないファイルを削除する場合は--cached を指定する。 git rm --cached [ファイルのパス] ***mv [#uc0d60cc] -ファイルを移動、またはファイル名を変更する。 ***commit [#vc399b66] -ローカルレポジトリの変更をコミット(確定)する。 -.git/index に追加されている内容がコミット対象になる。 -「commit -m "xxx" -a」※"-a"は変更の自動検出あり git commit git commit -m "comment" ***reset [#na83e1b6] -commitを取り消す。 ***checkout [#ee2cbb25] -現在のブランチを指定したブランチに変える。 --変更したファイルや追加したファイルがある場合、それらはブランチを変えても移動先に残る。 --移動先のブランチの同じファイルに別の変更があった場合はcheckoutが失敗する。この場合、stashで変更を退避してからcheckoutする。 -タグを指定した場合、指定したコミットの状態のブランチが作成される git checkout [ブランチ名] ***merge [#h1fbd2f7] -分岐していないブランチ間で、現在のブランチ(古い方)に、ブランチの変更(新しい方)を反映する。 --新しいコミットを作らない場合(Fast-forward:デフォルト)※直列の状態は変わらない(新しい方のブランチまでのコミットが何か分からなくなる) git checkout [古い方のブランチ名] git merge [新しい方のブランチ名] git merge -ff [新しい方のブランチ名] --新しいコミットを作る場合、no fast-forwardオプションを指定する。※分岐して合流した状態になる(新しい方のブランチのコミットが分岐した形で残る) git checkout [古い方のブランチ名] git merge --no-ff [新しい方のブランチ名] -分岐しているブランチ間で、現在のブランチに、分岐している他のブランチの変更を反映する。※新しいコミット(マージコミット)が作られる -mergeコマンドで指定したブランチの変更を取込む。 git checkout [反映先のブランチ名] git merge [反映元のブランチ名] ***rebase [#k3125606] -コミットの内容を変更する。(メッセージ、順序、統合) -分岐しているブランチ間で、現在のブランチの変更を、分岐している他のブランチに反映する。※新しいコミット(マージコミット)が作られる git checkout [反映元のブランチ名] git rebase [反映先のブランチ名] ***log [#t4e92af6] -コミットログを確認する ***diff [#y40430c0] -差分を確認する。 -ワーキングコピーと.git/index の差分 git diff ***tag [#r2c79a63] -タグを作成する ***stash [#x5b2ec80] -変更を一時的に退避する。 git stash git stash save git stash save [コメント] -退避した変更を一覧表示する。 git stash list **リモートリポジトリとの操作 [#r5f09c52] ***clone [#l75d69ab] -サーバ上のレポジトリをローカル環境にコピーする。 -取得するレポジトリはURL形式で指定する(末尾が.git) git clone [URL] git clone [URL] [Target-Directory] -指定したURLまたはTarget-Directoryの末尾の".git"を除いた名前のディレクトリが作成される。中には".git"ディレクトリが作成されてリポジトリがコピーされるのと、最新のファイル類がチェックアウトして格納される。 ***remote [#q159fba8] -リモートリポジトリの登録を確認 git remote -v git config remote.origin.url -リモートリポジトリを登録(ロカルリポジトリをリモートに送る前の処理) git remote add origin [URL] -リモートリポジトリを変更 git remote set-url origin [URL] ***pull [#r638e6e6] -サーバ上の変更をローカル環境に反映(マージ)する。 ***push [#r7064585] -ローカルレポジトリでコミットした変更をサーバに送る。 git push [リモート名] [ブランチ名] --リモートリポジトリに変更があった場合は、リモートリポジトリの変更を取込んでからpushする必要がある。(取込まずにpushすると、リモートリポジトリの変更が失われる) -例:サーバ上のmasterを更新する git push -u origin master ***branch [#h54902cc] -ブランチを確認する。 --ローカルレポジトリ git branch --リモートレポジトリ git branch -r --ローカルとリモートの両方 git branch -a -ブランチを作成する。 --現在のブランチから新しいブランチを作成する。 git branch [新しいブランチの名前] **その他 [#f5da8ab6] ***reflog [#lab798e0] *関連用語 [#k3fe91b8] -[[Git]]