Как удалить фиксацию, как если бы она никогда не создавалась (но все последующие коммиты все же произошли)? [Дубликат]

Вот хорошая ссылка . В этом случае:

curl 'http://twitter.com/users/username.json' | sed -e 's/[{}]/''/g' | awk -v k="text" '{n=split($0,a,","); for (i=1; i<=n; i++) { where = match(a[i], /\"text\"/); if(where) {print a[i]} }  }'

20
задан Adrian Panasiuk 24 January 2013 в 19:47
поделиться

2 ответа

git rebase -i B, а затем переместите $ в конец списка, который отображается в вашем редакторе. Он начнется как первая строка в открывшемся файле. Вы также можете просто удалить эту строку целиком, которая просто удалит эту фиксацию из истории вашего филиала.

22
ответ дан Carl Norum 19 August 2018 в 01:44
поделиться
  • 1
    Хорошо, спасибо! Теперь так ясно, что я должен использовать rebase, и я почему-то пытался его решить с помощью вишневых кусков. – Adrian Panasiuk 24 January 2013 в 20:11
  • 2
    @AdrianPanasiuk, вы тоже можете использовать вишневый кит, но, вероятно, было бы гораздо больше усилий. – Carl Norum 24 January 2013 в 20:14

Если вы хотите, чтобы вы совершали фиксации в том же порядке на feature, вы должны создать новую ветку и выполнить следующее. В противном случае просто сделайте это на feature

git rebase -i <sha for commit B>

Переместите фиксацию $ в нижнюю часть списка

git checkout master
git rebase feature <or the other branch name>

Мне было непонятно, но если вы не хотел $ вообще, а не перемещать его, удаляя его после git rebase -i. Хотя вы захотите сделать это на новой ветке, чтобы не потерять ее. Поскольку вы меняете историю.

Это также предполагает, что ветвь feature не была нажата на удаленный компьютер, поскольку история перезаписи плохо.

5
ответ дан Schleis 19 August 2018 в 01:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: