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

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

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

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

BitBucket

BitBucketは無料のリポジトリ管理ホスティングサービスです。 MercurialとGitのVCSに対応しています。プライベートリポジトリを、制限なく作成することが可能です。

Q&A

解決済

2回答

888閲覧

git 過去のリモートブランチに履歴に残ったコミットを編集したい

yochun02

総合スコア76

Git

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

BitBucket

BitBucketは無料のリポジトリ管理ホスティングサービスです。 MercurialとGitのVCSに対応しています。プライベートリポジトリを、制限なく作成することが可能です。

0グッド

0クリップ

投稿2020/10/09 09:57

編集2020/10/09 10:02

gitで、すでにリモートブランチにプッシュしてしまったコミットを編集したいのですが可能でしょうか?

状況

// リモート(bitbucket) // .(*)はコミットを表しているとします _____.(cm1)___________________.(cm2)___________________.(cm3) : master branch \___.(cb1)____.(cb2)_____\_.(merge)_________.(cb3) : feature branch // コミットcb1の内容 ファイルAを作成 ファイルBを作成 ファイルCを作成 → ローカルだけに秘密の情報があったのでなかったことにしたい
  • ローカルで作業しているブランチ(feature)はmasterのコミットcm1からチェックアウトしている
  • featureブランチは途中でmasterのコミットcm2をマージしている
  • コミットcb1の中には残したい変更もある(ファイルAを作成/ファイルBを作成)
  • featureブランチの作業者は自分のみ

今、featureブランチをmasterブランチにプッシュしてマージしたい(cb3->cm3)のですが、コミットcb1の中にプライベートな情報(ここではファイルCの中身)があったのでその部分だけをなくしたいのですがどうしたらよいでしょうか?(ファイルC作成の変更履歴が残らないようにしたい)

最悪今までのfeatureブランチの変更からファイルCだけ消した変更を手動でバックアップしてブランチを新たに作り直してコピーしますが、めんどくさいので。。。

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

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

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

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

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

guest

回答2

0

ベストアンサー

色々やり方はあると思いますが、
git cherry-pick というコマンドを使うと、
たとえば次のような手順で可能です:

cm1 から新しい feature ブランチを作成

cb1 の編集内容の内、ファイルC の作成以外を cherry-pick して commit

参考: Answer: How to git-cherry-pick only changes to certain files?

cb2cherry-pick

mastermerge

cb3cherry-pick

参考:

投稿2020/10/09 10:31

y_shinoda

総合スコア3272

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

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

0

とりあえずですが、ファイルCを作成したコミットのみ消したいなら
git rebase -i ファイルCを作成したハッシュ値
を実行する。そしてgit logしてそのコミットが削除されていたら、
再コミットしてpushするながれでいいのでは。

git rebase -iの使い方は以下を参考にどうぞ。
http://qiita.com/ykawakami/items/0d6826c529ad7c7b37dd

投稿2020/10/09 10:18

firegrape

総合スコア902

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問