2

gitリポジトリに以下のコミット履歴があるとします(すべての変更は1つのファイルで行われます)

  1. 関数の削除foo()bar()、関数の変更baz()
  2. 何か他のものを変える

今、関数を再度追加したいと思いfoo()ます。私が望んでいたのは、これを手動で行う方法です。たとえば、エディタが並列差分モードで開かれているとします。一方はコミット #1 ( function を含むfoo()) の前のバージョンで、もう一方はローカルの作業コピーです。履歴側から作業コピー側に必要なものをすべてコピーできるようにします。

gitこれを行うのに役立つコマンドはありますか?

ありがとう

4

1 に答える 1

0

これが1つの解決策であり、おそらく私が行うことです。

# Stash any current modifications to be safe.
git stash

# Make a new commit that re-adds foo, bar and maz
git revert <sha of the commit with your function>

# Remove the commit you just created, but leave the file changes.
git reset HEAD^

# Interactively decide which chunks of code you actually want.
# Just follow the instructions, type '?' for help.
git add -p

# Commit all of the changes that you staged.
git commit

# Discard all the other stuff you didn't accept.
git checkout .
于 2012-07-10T04:43:16.800 に答える