2017-01-03 2 views
1

Я совершил код для моей ведущей ветки в битбакете. Но ошибочно я добавил номер своей кредитной карты в качестве эхо-инструкции php-файла. Так что теперь мне нужно удалить полную фиксацию из bitbucket.I видел, что есть несколько способов сделать такие, как git rebase или reset.But все равно не повезло для него. Так есть способ сделать это? Иногда я мог следовать за неправильными шагами для этого.Git commit delete by hash number from bitbucket

+0

Возможного дубликат [Удалить фиксации из филиала в Git] (HTTP://stackoverflow.com/questions/1338728/delete-commits-from-a-branch-in-git) –

+0

Нет, есть только один мастер вызова ветви, и только я работаю над ним. Но в будущем на нем будет работать больше разработчиков . Поэтому перед этим мне нужно удалить мою фиксацию. – CodeCanyon

+0

«Но до сих пор не повезло». впечатляюще неясен. – jthill

ответ

2

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

Если коммит, содержащий CC номер является глава филиала, то вы можете изменить коммит путем редактирования, что PHP-файл, а затем совершить через:

git commit --amend 

Если плохой фиксации является не глава филиала, то вы можете попробовать сделать интерактивный перебазироваться с помощью:

git rebase -i HEAD~10 # replace 10 with however far you need to go back 

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

Обратите внимание, что, так как вы переписали историю вашей отрасли, вам придется заставить толкать его на удаленном с помощью:

git push --force origin master 
+0

ОК, я следил за вашими шагами. Итак, вы просите изменить выбор, чтобы внести изменения в текстовый редактор? Это все? – CodeCanyon

+0

@CodeCanyon Вам нужно изменить 'pick' на' modify' для _every_ commit из (и в том числе) фиксации, где вы случайно добавили номер кредитной карты _ а также, как и все коммиты, появляющиеся _below_, которые фиксируются в списке. Затем завершите rebase, и каждый из этих коммитов Git даст вам возможность внести изменения. Удалите номер кредита и введите 'git rebase -continue', пока вы не закончите. –

+0

Хорошо, я так и сделал. Но я думаю, что я пропустил один шаг, который является git rebase - продолжением. Так будет ли это проблемой, если я снова повторю те же шаги? – CodeCanyon