У меня есть ветка (Branch A), в которой добавлено около 300 файлов, я затем объединил это в мастер. Слияние объединило мастер, поэтому я удалил все 300 файлов и совершил удаление этих файлов. Затем я перешел в Branch A и исправил переопределение, но слияние этой ветки не приведет к переносу этих файлов, поскольку они не были обновлены с момента фиксации, которая их удалила. Есть ли способ вишни - выбрать только удаленные файлы из фиксации, чтобы я мог вернуть их?Черри выбирают конкретные фиксации и восстанавливают только удаленные файлы?
1
A
ответ
3
На вашей главной ветке получите список удаленных файлов со времени предыдущей фиксации.
git diff --name-status HEAD~1 | grep '^D' | cut -c 3- > /tmp/FileList.txt
Затем Переберите список удаленных файлов и использовать git show
для извлечения данных файлов из другой ветви.
for line in $(cat /tmp/FileList.txt); do git show OtherBranchName:$line > $line; done
К сожалению, это не обрабатывает имена файлов с пробелами, но мы можем использовать this answer, чтобы исправить эту проблему.
IFS=$'\n'
for line in $(cat /tmp/FileList.txt); do git show OtherBranchName:$line > $line; done
Смежные вопросы
- 1. Черри-сбор всей истории фиксации конкретного файла
- 2. Mercurial commit только измененные и удаленные файлы
- 3. Phabricator обзор только конкретные файлы
- 4. Черри выбирают номера из абзаца только в том случае, если на этой строке есть определенное слово
- 5. Удалить все удаленные файлы в следующей фиксации с ртутный
- 6. тянуть конкретные фиксации/файл мерзавец
- 7. IE загружает только удаленные файлы .js
- 8. Локализовать и открыть удаленные файлы
- 9. Импортировать только определенные файлы при первом фиксации
- 10. Сделать удаленные файлы невосстановимыми
- 11. Удаленные файлы Debian (/ usr)
- 12. Как вишня-выбрать конкретные фиксации файла?
- 13. DeflatorInputStream и DeflatorOutputStream не восстанавливают исходные данные
- 14. JGit Traverse Локальные и удаленные ветви только HEAD и читать файлы
- 15. Как объединены удаленные файлы?
- 16. Случайно удаленные файлы mongodb
- 17. Удаленные файлы миграции - Laravel
- 18. Git merge удаленные и измененные файлы
- 19. CruiseControl.Net Удаленные файлы
- 20. Изменить удаленные файлы .config
- 21. Функции выбора черри
- 22. Git игнорировать удаленные файлы
- 23. Файлы списков и кошек при определенном фиксации
- 24. Проверить версию текущего файла git и как обрабатывать удаленные файлы
- 25. Git добавить все файлы, измененные, удаленные и не проверенные?
- 26. Удаленные файлы в студии android
- 27. Как программно обнаруживать удаленные файлы?
- 28. междусобойчик обновление: Локальные и удаленные файлы соответствуют
- 29. Помощь GIT! удаленные и локальные файлы удаляются
- 30. как восстановить ПОКА конкретные фиксации в мерзавца
Хотя ваша проза очень ясно, этот вопрос все еще может быть улучшена за счет увеличения его с минимальным набором мерзавца команд, которые можно использовать, чтобы воспроизвести вашу точную проблему, и государство вы хотите хранилище быть. – merlin2011
@ merlin2011 Я хотел бы добавить 300 файлов обратно в мою основную (или развить) ветвь, желательно незафиксированную. Я использовал git add и git rm для добавления и удаления файлов перед фиксацией. git merge, чтобы объединить ветвь A в master. – Jtanacredi
Вы пытались сделать «git revert» на коммите, который удалил 300 файлов? – Christopher