#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]]