Возврат одного файла в GitKraken
Возможно ли в GitKraken отменить изменения одного файла до более раннего коммита, а не отменить весь коммит?
6 ответов
Ответ
revert
в git-смысле это может быть выполнено только при коммите. Он вводит новый коммит, который точно отменяет изменения отмененных коммитов. Смотрите здесь. GitKraken поддерживает это: щелкните правой кнопкой мыши на коммите, Revert <branch> to this commit
,
Однако то, что вы хотите достичь, может быть сделано через git checkout
, Я не думаю, что GitKraken поддерживает эту функциональность для одного файла. Вы можете, однако, использовать командную строку.
Сброс одного файла через командную строку
git checkout <commit> <file>
Проверьте предыдущую версию файла. Это превращает
<file>
который находится в рабочем каталоге в точную копию одного из<commit>
и добавляет его в область подготовки.
Документацию можно найти здесь.
git checkout HEAD~1 <filename>
таким образом, сбросит один файл до фиксации до текущего HEAD
,
Вы можете сделать это в пользовательском интерфейсе GitKraken, но это немного обходится:
- Верните самые последние коммиты обратно туда, где был удален файл, но когда GitKraken спросит, хотите ли вы немедленно зафиксировать реверсию, нажмите нет.
- Отменить все изменения
- Установите только добавление для файла, который вы пытаетесь восстановить
- Щелкните правой кнопкой мыши в Unstaged и отменить все
Это должно оставить вам только добавление для одного файла, который вы хотите восстановить. Передайте это, и теперь у вас есть один файл обратно.
Обратите внимание, что это может работать с многочисленными коммитами, а не только с одним... но так как ему придется откатывать все из всех этих коммитов, а затем отбрасывать все откаты (кроме одного), это может быть довольно медленным, если связано с массивным изменения. В подобных ситуациях, вероятно, лучше использовать git CI, как это предлагается в ответе Ковски.
Хотя это не означает строго использование git
команд, GitKraken предлагает возможность визуализировать содержимое любого файла проекта в любой момент commit
.
При работе с одним файлом может быть намного проще скопировать / вставить содержимое целевого файла фиксации, чем использовать сложные git
команды, которые вполне могут в конечном итоге испортить историю коммитов вашего проекта.
Для этого просто:
- Откройте свой проект git в GitKraken
- Щелкните желаемый коммит в строке истории коммитов
- В правой панели, установите просмотреть все файлы флажок
- Найдите нужный файл проекта и щелкните по нему
- Содержимое файла будет отображаться на главной панели.
- Теперь вы можете скопировать / вставить содержимое
Просто и эффективно, когда вам нужно только восстановить очень ограниченное количество файлов...
GitKraken 7.3.0 (вероятно, и более старые версии) позволяет эффективно запускать git checkout для одного файла в пользовательском интерфейсе: щелкните правой кнопкой мыши файл в разделе «неустановленные файлы» и выберите «отменить изменения». Работает и с папками.
(Этот ответ ранее был комментарием к принятому ответу)
Вы можете выполнить UNDO для последнего коммита, отредактировать его, а после этого сделать Force push, чтобы перезаписать его. Работает очень хорошо