3

できれば SourceTree または単純な git コマンドを使用して、以前のコミットで 1 つのファイルへの変更を元に戻す方法を教えてください。別の言い方をすれば、コミットを元に戻す方法ですが、コミットされた多くのファイルのうちの 1 つだけですか?

コミット全体を元に戻してから、1 つのファイルの変更を除くすべてを再コミットする必要がないようにします。

編集: 1つのファイルを編集して手動で「元に戻す」だけになりました。しかし、見栄えの良い回答が2つありましたが、より多くの場合に機能すると思われる回答を選択します。

4

3 に答える 3

3

最新のコミットを取り消したいが、まだプッシュされていない場合は、次のコマンドを発行できます。

git checkout HEAD^ -- <file_path>  # revert and stage the problematic file
git commit --amend                 # edit the latest commmit
于 2016-02-08T21:03:41.173 に答える
0

任意のコミットでファイルへの変更を元に戻すには、

git revert $thecommit              # revert the whole commit
git reset --hard @{1}              # in what turns out to have been a throwaway commit
git checkout @{1} $thatfile        # take what you want

ただし、不要な変更が最新のコミットにある場合は、変更されていないバージョンを直接チェックアウトできます

git checkout @^ $thatfile          # restore mainline-parent content
于 2016-02-19T04:17:19.077 に答える