差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
ツール:git [2020/05/19 14:07] – [タグ] mumeiyamibito | ツール:git [2024/03/13 16:26] (現在) – [コミット間の移動 (過去の状態に戻す)] mumeiyamibito | ||
---|---|---|---|
行 101: | 行 101: | ||
* '' | * '' | ||
* '' | * '' | ||
+ | |||
+ | * 直前のコミット削除 (マージコミットの完全削除)\\ <code bash>$ git reset --hard ORIG_HEAD</ | ||
+ | * push 後には使えない。 | ||
+ | * push 後の削除は、revert コマンドを使って、前の状態に戻した履歴を残す必要がある。\\ <code bash>$ git revert -m 1 MERGE_COMMIT</ | ||
+ | * '' | ||
+ | * 参考サイト: | ||
* 指定コミット以降の削除\\ <code bash>$ reset --hard COMMIT</ | * 指定コミット以降の削除\\ <code bash>$ reset --hard COMMIT</ | ||
行 118: | 行 124: | ||
* '' | * '' | ||
- | ==== コミット間の移動 ==== | + | ==== コミット間の移動 |
* 特定のコミットに移動する場合 (ただし、ローカルに変更があった場合は、変更ファイルの状態を維持する)\\ <code bash>$ git checkout COMMIT</ | * 特定のコミットに移動する場合 (ただし、ローカルに変更があった場合は、変更ファイルの状態を維持する)\\ <code bash>$ git checkout COMMIT</ | ||
* ローカルの変更を無視して、特定のコミットに移動する場合 (変更ファイルも特定コミット状態になる)\\ <code bash>$ git checkout -f COMMIT</ | * ローカルの変更を無視して、特定のコミットに移動する場合 (変更ファイルも特定コミット状態になる)\\ <code bash>$ git checkout -f COMMIT</ | ||
行 125: | 行 131: | ||
* 特定のファイルのみ特定のコミットに戻す (ローカルの変更無視)\\ <code bash>$ git checkout -f COMMIT FILE</ | * 特定のファイルのみ特定のコミットに戻す (ローカルの変更無視)\\ <code bash>$ git checkout -f COMMIT FILE</ | ||
* '' | * '' | ||
+ | * 特定のファイルの過去のバージョンを別ファイルとして取り出す | ||
+ | * cat-file を使う方法\\ <code bash>$ git cat-file -p COMMIT: | ||
+ | * show を使う方法\\ <code bash>$ git show COMMIT: | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
==== タグ ==== | ==== タグ ==== | ||
行 139: | 行 151: | ||
* タグの削除\\ <code bash>$ git tag -d " | * タグの削除\\ <code bash>$ git tag -d " | ||
* '' | * '' | ||
+ | * タグの push (タグはリモートにデフォルトでは反映されない)\\ <code bash>$ git push origin --tag</ | ||
==== ブランチ ==== | ==== ブランチ ==== | ||
* ブランチの作成 (コミットを分岐させる時に使う; | * ブランチの作成 (コミットを分岐させる時に使う; | ||
* '' | * '' | ||
- | * ブランチの一覧表示\\ <code bash> | + | * ブランチの一覧表示\\ <code bash>$ git branch</ |
* ブランチの削除 (マージ済みのブランチのみ)\\ <code bash>$ git branch -d BRANCH_NAME</ | * ブランチの削除 (マージ済みのブランチのみ)\\ <code bash>$ git branch -d BRANCH_NAME</ | ||
* '' | * '' | ||
- | * ブランチの削除\\ <code bash>$ git branch -D BRANCH_NAME</ | + | * ブランチの削除 |
* '' | * '' | ||
+ | * ブランチの削除 (リモート)\\ <code bash>$ git push origin : | ||
+ | * '' | ||
+ | * ブランチの名前変更 (ローカル)\\ <code bash> | ||
+ | * '' | ||
+ | * '' | ||
* ブランチ間の移動\\ <code bash>$ git checkout BRANCH_NAME</ | * ブランチ間の移動\\ <code bash>$ git checkout BRANCH_NAME</ | ||
* '' | * '' | ||
行 169: | 行 187: | ||
</ | </ | ||
* D-E-F が G へとマージされるが、D-E-F が別ブランチである情報を残っている | * D-E-F が G へとマージされるが、D-E-F が別ブランチである情報を残っている | ||
+ | * mercurial はデフォルトでこっちの挙動になる。 | ||
* fast-forward のマージ後の例: | * fast-forward のマージ後の例: | ||
* D-E-F がマージされ一本化する | * D-E-F がマージされ一本化する | ||
* HEAD が移動するだけなので、G が作られない | * HEAD が移動するだけなので、G が作られない | ||
+ | * ブランチのマージ (no-fast-forward)\\ <code bash> | ||
+ | $ git checkout MERGED_BRANCH | ||
+ | $ git merge --no-ff MERGE_BRANCH | ||
+ | </ | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | ==== コミット日時の変更 ==== | ||
+ | * 過去に管理していなかったファイルをコミットする際に、開発日時にしたい場合がある。 | ||
+ | * その場合にコミット日時を変更する必要があるが、git には、実際のコミット日時と author_date が設定されており、ここでは author_date を変更する方法を紹介する (git log で表示されるのは author_date の方)。 | ||
+ | * コミット直後に日時を変更する例: | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * 過去のコミットの日時を変更する場合 | ||
+ | - 修正したいコミットの直前のコミットを指定する\\ <code bash>$ git rebase -i COMMIT</ | ||
+ | - エディタが起動するので、コミット日時を変更したいコミットの左側を '' | ||
+ | - コミット直後に日時を変更する例のように '' | ||
+ | - 日時を反映させる\\ <code bash>$ git rebase --continue</ | ||
+ | |||
+ | ==== git のリモート先の変更 ==== | ||
+ | - 現在のリポジトリに適用されているリモートの URL を確認する。\\ <code bash>$ git remote -v</ | ||
+ | - 移行先の新しい URL を設定する。\\ <code bash>$ git remote set-url origin NEW_URL</ | ||
+ | * '' | ||
+ | * 参考サイト: | ||