У меня есть ветка, где я внес некоторые изменения в несколько файлов в несколько коммитов. Однажды, некоторое время назад, я начал выполнять некоторую работу над подмножеством этих файлов и проверил некоторые изменения. После этого мы решили, что эти файлы должны быть удалены как часть вещей, выполняемых в другой ветке. Таким образом, я хочу «отменить» эти файлы - они больше не имеют отношения к тому, что я делаю в своем филиале, и из-за этого я не хочу вызывать конфликты слияния с другими удаленными файлами.Отмена изменений в определенных файлах в старых коммитах, не оставляющая следов из них
Есть ли способ обновить коммит, который сделал эти изменения, чтобы оставить эти файлы нетронутыми, и за пределами истории моего филиала?
В более конкретном плане:
Рассмотрим следующий дерево исходного кода, в текущем состоянии:
src/A.java
src/B.java
src/C.java
src/D.java
Некоторые 10 совершает или назад, так в истории, коммит был сделан, что внесены изменения следующим образом:
M src/B.java
M src/C.java
A src/D.java
есть ли способ я могу удалить изменения C.java
из я История электронной, так что, когда вы смотрите на коммит над ней вместо выглядит
M src/B.java
A src/D.java
Как вы видите, он будет выглядеть так, что C.java
никогда не трогали моей отрасли.
Я просмотрел git revert
, но не смог найти способ сделать это, не создавая новую фиксацию, которая сбрасывает изменения, сделанные старым. Я знаю, что я мог бы также избежать конфликтов слияния, просто удалив файлы в моей ветке, но это похоже на «уродливое» решение, которое работает на этот раз, но, возможно, не следующее (что, если изменение в другой ветке не является удалением, но модификация?), поэтому, если есть более чистый способ, я бы хотел его изучить.
Возможный дубликат [Git: лучший способ удалить все изменения из заданного файла для одного филиала] (http://stackoverflow.com/questions/9751928/git-best-way-to-remove-all-changes- from-a-given-file-for-one-branch) – RyPeck