Измененные коммиты возвращаются к предыдущим коммитам - PullRequest
0 голосов
/ 13 января 2020

У меня есть репо с мастер веткой. У меня есть исправления с 1 по 10, исправленные в одном коммите. Теперь я исправил 11-й набор патчей в этом коммите и вставил код в gerrit. Я хочу вернуть коммит обратно на 10й ком и пу sh. Как мне вернуться, как будто я вижу git log, он не перечисляет коммиты в этом наборе патчей. Но скорее он воспринимается как один коммит.

Я объяснил последовательность действий, сделанных ниже.

Sequence of actions
1. Initially for patch-set #1 
git clone repo
made changes to code 
git commit 
git push HEAD:refs/for/master => pushes to gerrit
Let us assume gerrit patch# generated is 12345

2. mkdir new_dir
git clone repo
git checkout ssh:user@gerrit1.xxx.com/development refs/changes/1/12345/1 && git checkout FETCH_HEAD
made modifications for patch-set 2 on patch-set 1
git commit --amend
git push HEAD:refs/for/master => pushes to gerrit 

Now gerrit patch#12345 has following commits/patch-sets
1, 2

3. Repeated step 2 for patch-sets 3 to 11
Now gerrit patch#12345 has following commits/patch-sets
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11

4. Got to know path-set 11 is redundant, has to be reverted, so that patch-set#10 is the latest and 11 should be discarded, so that gerrit patch#12345 has commits/patch-sets 1, 2, 3, 4, 5, 6, 7, 8, 9, and 10 only (not 11).


How do I achieve step 4?

Когда я попытался git rebase -i с идентификатором коммита, это говорит фатальный плохой объект.

Пожалуйста, дайте мне знать, как решить эту проблему с помощью git команд, или я должен сделать это вручную.

Спасибо.

1 Ответ

1 голос
/ 14 января 2020

Ответ на ваш вопрос. Вместо того, чтобы проверять набор патчей 1, вам просто нужно получить обратно набор патчей 10.

git checkout ssh:user@gerrit1.xxx.com/development refs/changes/1/12345/10 && git checkout FETCH_HEAD
git commit --amend
git push HEAD:refs/for/master

Вам нужно будет изменить свой набор патчей 10, чтобы иметь возможность повторить его sh, поскольку Геррит не позволит вам чтобы повторно набрать sh того же набора патчей, после этого вы можете отправить набор 11 патчей.

В качестве альтернативы вы можете проверить свой список изменений и найти там набор патчей 11. Но проще всего получить команду из Gerrit Download Commands

...