$ sudo apt install git
$ sudo add-apt-repository ppa:git-core/ppa $ sudo apt update $ sudo apt install git
$ git config --global user.name "hoge" $ git config --global user.email "hoge@example.com"
–global はデフォルトとして設定すること意味するため、以降は設定が不要になる (ただし、リポジトリ毎に異なるユーザ名とメールアドレスを使う場合はリポジトリ毎に、–global を抜いて設定する。詳しくは使い方のリポジトリの作成を参照)。–global を付けてしまった場合は、以下のコマンドで削除できる。$ git config --global --unset user.name $ git config --global --unset user.email
$HOME/.gitconfig にも記述されているので、エディタで [user] 項目を編集することでも対処できる。$ mkdir REPOSITORY_NAME $ cd REPOSITORY_NAME $ git init
$ git config --global user.name "hoge" $ git config --global user.email "hoge@example.com"
$ git add FILE
FILE: 登録したいファイル (ただし、add しただけでは登録されない) (複数指定可)$ git rm FILE
FILE: 登録したいファイル (ただし、rm しただけでは登録されない) (複数指定可)$ git mv FILE RENAMED_FILE
FILE: 名前の変更をしたいファイルRENAMED_FILE: 変更後のファイル名$ git add -A
$ git reset HEAD FILE
FILE: 取り消したいファイル (複数指定可)HEAD は git Ver. 1.8.5 から @ に置き換えても良くなった。$ git status
??: ファイルがこれまで登録されておらず、ステージングもされていないA: ファイルの追加がある (add 済み)D: ファイルの削除がある (rm 済み)R: ファイルの名前変更がある (mv 済み)M: ファイルの変更がある$ git commit
$ git commit -m 'MESSAGE'
MESSAGE: コミットメッセージ$ git commit --file FILE
FILE: コミットメッセージを読み込むファイルのパス$ git commit --amend
$ git log
–oneline: 履歴を 1 行 1 コミットで表示–graph: アスキーグラフで表示–p: 差分を表示–stat: 変更された行数を表示-2 直近の 2 コミットを表示 (数字は変更可)–decorate: 現在の HEAD、ブランチ名、タグ名を表示HEAD, @ (Ver. 1.8.5 から), コミットのハッシュ値で表現できる。HEAD の後に ^ や ~、^{n}, ~n を付けるか、コミットのハッシュ値で表現できるHEAD^, @^, HEAD^{1}, HEAD~1, @^{1}, @~1: 一つ前のコミットHEAD^^^, @^^^, HEAD^{3}, HEAD~3, @^{3}, @~3: 3 つ前のコミットCOMMIT で表現する$ git reset --hard HEAD^
–hard: 作業ディレクトリの内容も 1 つ前の状態に戻す (コミット内容と同じにする)–soft: –hard の代わりに与えるオプションで、作業ディレクトリの内容は維持するHEAD^: 直前のコミットを示す$ git reset --hard ORIG_HEAD
$ git revert -m 1 MERGE_COMMIT
-m で残す親を指定する。$ reset --hard COMMIT
COMMIT 以降に登録されたコミットが削除される$ git revert COMMIT
$ git rebase -i COMMIT
pick: このまま維持reward:edit: 編集squash: 直前のコミットに統合fixup: squash に加え、ログ自体からも破棄exec:drop: コミットの削除 (conflict が起こった場合、conflict を解消するために何度も質問される)$ git checkout COMMIT
$ git checkout -f COMMIT
$ git checkout COMMIT FILE
FILE: 戻したいファイル$ git checkout -f COMMIT FILE
FILE: 戻したいファイル$ git cat-file -p COMMIT:FILE1 > FILE2
$ git show COMMIT:FILE1 > FILE2
COMMIT: コミットのハッシュ値FILE1: 戻したいのファイルFILE2: 保存先$ git tag "TAG"
TAG: タグ名$ git tag -a "TAG" -m "TEXT"
TAG: タグ名TEXT: 注釈$ git tag "TAG" COMMIT $ git tag -a "TAG" -m "TEXT" COMMIT
$ git tag
$ git tag -d "TAG"
TAG: タグ名$ git push origin --tag
$ git branch BRANCH_NAME
BRANCH_NAME: ブランチ名$ git branch
$ git branch -d BRANCH_NAME
BRANCH_NAME: ブランチ名$ git branch -D BRANCH_NAME
BRANCH_NAME: ブランチ名$ git push origin :BRANCH_NAME
BRANCH_NAME: ブランチ名$git branch -m BRANCH_NAME NEW_NAME
BRANCH_NAME: 変更したいブランチ名NEW_NAME: 変更後のブランチ名$ git checkout BRANCH_NAME
BRANCH_NAME: ブランチ名master$ git checkout -f BRANCH_NAME
BRANCH_NAME: ブランチ名master$ git checkout MERGED_BRANCH $ git merge MERGE_BRANCH
MERGED_BRANCH: マージ先ブランチ (たいていは master)MERGE_BRANCH: マージするブランチ–ff オプションが適用されており、fast-foward のマージになる。,-D-E-F. -A-B-C--------`G-
-A-B-C-D-E-F-
$ git checkout MERGED_BRANCH $ git merge --no-ff MERGE_BRANCH
MERGED_BRANCH: マージ先ブランチ (たいていは master)MERGE_BRANCH: マージするブランチ$ git commit --amend --date='Fri Aug 28 00:00:00 2019 +0900'
Fri: 曜日を金曜日に設定する (合ってないとこの項目は無視される)Aug: 8 月に設定する28: 28 日 (8月の) に設定する00:00:00: 00:00:00 に設定する2019: 2019 年に設定する。+0900: タイムゾーンを +0900 に設定する$ git rebase -i COMMIT
pick から edit にするcommit –amend で日時を指定する$ git rebase --continue
$ git remote -v
$ git remote set-url origin NEW_URL
NEW_URL 移行先の URL