差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
| ツール:git [2020/05/19 14:08] – [ブランチのマージ] 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</ | ||
|     * '' |     * '' | ||
| 行 173: | 行 191: | ||
| * 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</ | ||
| + |     * '' | ||
| + |   * 参考サイト: | ||