1. ホーム
  2. git

[解決済み] Git の対話的リベース、ピックするコミットはなし

2022-10-02 12:12:30

質問

私はマスターにいます。 rebase -i <my_branch>

これを取得。

noop

# Rebase c947bec..7e259d3 onto c947bec
#
# Commands:
#  p, pick = use commit
#  r, reword = use commit, but edit the commit message
#  e, edit = use commit, but stop for amending
#  s, squash = use commit, but meld into previous commit
#  f, fixup = like "squash", but discard this commit's log message
#  x <cmd>, exec <cmd> = Run a shell command <cmd>, and stop if it fails
#
# If you remove a line here THAT COMMIT WILL BE LOST.
# However, if you remove everything, the rebase will be aborted.
#

歓迎されないコミットもあるので、すべてではなく、いくつかのコミットを選びたいと思います。 また、あるファイルや変更を常にあるブランチに「ローカル」にしておきたい場合、どのように作業するのでしょうか?以下のようなヘルパーはありますか? .gitignore ?

どのように解決するのですか?

非対話型リベースのように、特定のコミットにリベースする必要があります。

非対話的リベースでは、現在のコミットの直接の先祖を指定しても何も変わりません。対話的リベースでは、リベース先のコミット以降を編集することができ、そのコミットが現在のコミットの直接の先祖であっても、編集したいコミットを指定しなければなりません。

あなたの状況の詳細は知りませんが、次のようなものが必要かもしれません。

# Opportunity to edit or prune commits between origin/master and current branch
git rebase -i origin/master

または

# Edit some of the last ten commits
git rebase -i HEAD~10 # Note that ~10 uses a tilde("~") not a dash("-"_) !