質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

Q&A

解決済

2回答

1132閲覧

以前のgit commit で記述したログのコメントを書き換えるためのコマンドを教えてください

echizeyayota

総合スコア106

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

0グッド

2クリップ

投稿2021/09/29 03:38

編集2021/09/29 03:39

下記の質問についてご存知の方がいらっしゃいましたら、ご教示を願います。


【質問の主旨】

git commit したときに記述した、先頭ではないコメントを変更するコマンドを教えてください。

【質問の補足】

下記のスクリーンショットにおいて「Update the package.json」というコメントの箇所が先頭になっています。一方コメントの内容を変更したいと考えている箇所は、「src/index.jsの更新」です。

イメージ説明

「Update the package.json」のコメントを変更する場合は、単にgit commit --amend をして記述内容を変えれば良いと思いますが、以前のcommitに戻ってコメントを変更する方法が分かりません。


以上、よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

念のための補足となりますが、リポジトリがローカルにしかない、あるいは完全に非公開なプロジェクトで、git push -fの影響範囲も明らか、はたまたプライベートキーのような書くべきでない情報を残してしまったというような場合を除けば、過去のコミットの改変はやるべきではありません

そのリポジトリを使う全員にGitツリーの再構築を要求する(そうでなければ、古いコミットが残ってGitツリーが煩雑化する)ことになります。

投稿2021/09/29 04:16

maisumakun

総合スコア146018

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

echizeyayota

2021/09/29 05:36

maisumakun さん。 コメントありがとうございます。 > 過去のコミットの改変はやるべきではありません。 このリポジトリは現在ローカル開発環境にありますが、ひょっとすると公開するかもしれません。 なので今回の具体例においては、コミットの改変をしないこととします。 今後ともどうぞよろしくお願いします。
maisumakun

2021/09/29 05:52

> このリポジトリは現在ローカル開発環境にありますが、ひょっとすると公開するかもしれません。 まだローカルにしかないものであれば、何ら問題ありません。
guest

0

参考記事: edit-コミットを修正する(rebaseを一時停止する) - git rebase についてまとめてみた | Qiita

普通のamendと同じ流れを利用することは可能です。

bash

1# コミット履歴を改ざんしてぶっ壊すのでバックアップを作成してそこで作業する 2$ git checkout -b tmp 3 4# コミットIDを取得する為に確認 5$ git log 6 7$ git rebase -i コミットID 8 9# エディタが立ち上がるので、該当のコミットか次のコミットあたりをeditに変える 10 11# コミットメッセージを変更 12$ git commit --amend -m "ちゃんとしたコメント" 13 14# 停止させていたコミット履歴を適用して完了 15$ git rebase --continue 16 17# コミット履歴が上手く改ざんできたら元のブランチになりかわる 18$ git branch -D feature/branch 19$ git checkout -b feature/branch 20$ git branch -D tmp

まぁ、コミットメッセージを編集するだけならgit rebase -iしたタイミングで、
editではなくrewordを使うのが早いでしょうね。

rewordを指定すると再度エディタが立ち上がるので、
コミットメッセージ部分を適したメッセージに書き換えて保存終了するだけです。

投稿2021/09/29 03:53

miyabi-sun

総合スコア21203

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

echizeyayota

2021/09/29 05:36

miyabi-sun さん。 コメントとリンクの紹介ありがとうございます。 maisumakun さんへのコメントで述べた通り、今回のリポジトリはひょっとすると公開するかもしれないので、コミット履歴を改ざんすることはやめておきます。 完全非公開のリポジトリで、どうしてもコミットの改ざんをしなければならないときに参考とさせていただきます。 今後ともどうぞよろしくお願いします。
miyabi-sun

2021/09/29 06:16 編集

> 今回のリポジトリはひょっとすると公開するかもしれないので これは職場等で既に複数人の協業者が居る場合に該当します。 GitHubで既に公開済でも、一人プロジェクトと分かっているならお行儀が悪くてもそこまで問題にはなりません なにはともあれ、コミット履歴を改ざんするなら お行儀を一切気にしなくても良い公開前の今が最後のチャンスみたいな所があったりします。 公開・協業後はmasterの本流ブランチは絶対触るな!という感じになります。 それ以降の開発は基本的にmasterブランチにプルリクエストを使って少しずつ肉付けしていく形になりますが、 この時プルリクエスト用のブランチは、masterに取り込まれるまではもっと綺麗な整形が見つかったら、そこの部分だけコミット履歴を改ざんするというケースは多いです。 この辺の事情から手順は理解しておいたほうが良いと思うので回答してあります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問