Я отправил коммит, который изменил файлы file1, file2, file3, file4, file5.
Я решил, что логика неверна, и в рамках фиксации я изменил некоторые API в файлах files2, file3.
Что я хочу нужно как-то отменить локальные изменения для files2, files3 и и правильно исправить остальные файлы.
Итак, начните мое исправление, взяв за основу исходную версию files2, files3, но самую последнюю из остальных.
Как я могу это сделать?
Как я могу вернуть определенные файлы коммита?
Ответы (2)
Самый простой способ сделать это:
# get the version of the file from the given commit
git checkout <commit> path/to/file
В моем случае:
git checkout b1cdc80fffe381eb3938e7b7f337d6550ffbd199 /MyProjects/AndroidCameraAPI/app/src/main/java/info/androidhive/androidcameraapi/MainActivity.java
Затем изменил мой код и снова совершил фиксацию.
ПРИМЕЧАНИЕ. Коммит, который я использовал в моем примере, был стабильной версией, к которой я хотел вернуться.
person
Mohammad Arman
schedule
27.07.2015
Так что проверьте версию файла перед моей фиксацией. А по окончании нажать?
- person Jim; 27.07.2015
Почему, когда я оформляю заказ, файл уже готов к фиксации?
- person Jim; 27.07.2015
Да, это будет сделано для фиксации. На этом этапе вы можете внести необходимые изменения и снова выполнить фиксацию. Или, если вы хотите сделать его более чистым, то после проверки предыдущей фиксации создайте новую локальную ветвь. Сделайте свою модификацию. Затем зафиксируйте и отправьте в удаленную ветку.
- person Mohammad Arman; 27.07.2015
Что я делаю, так это СБРОС для файлов, поэтому они стали неустановленными. И сейчас я над этим работаю. Это нормально?
- person Jim; 27.07.2015
Деактивировать файл не нужно. Поэтапный файл означает, что его можно передать в рабочую ветку.
- person Mohammad Arman; 27.07.2015
В одном файле мне нужно сделать небольшую модификацию. В другом оригинал. Так что это нормально, как я это делаю? СБРОСИТЕ тот, с изменениями, затем добавьте и т. Д.
- person Jim; 27.07.2015
Да, все в порядке. Вы можете пойти на это. :)
- person Mohammad Arman; 27.07.2015
Самый простой способ - выполнить мягкий сброс вашего коммита (при этом изменения в ваших файлах сохранятся, но не будут зафиксированы). Отмените изменения для файлов 2 и 3 (это вернет их к предыдущей фиксации).
person
Jelle
schedule
27.07.2015
Что вы имеете в виду мягкий сброс? Я нажал свою фиксацию, и теперь на ней есть другие
- person Jim; 27.07.2015
Понятно. В этом случае вы можете проверить предыдущую фиксацию ваших изменений. Добавьте новую фиксацию с исходными файлами 2 и 3 и выберите их вишневым цветом: git-scm.com / docs / git-cherry-pick
- person Jelle; 27.07.2015
Почему срывают вишню? Извините, я не очень хорошо разбираюсь в git
- person Jim; 27.07.2015