#git #github #merge
#мерзавец #github #слияние
Вопрос:
Я хотел бы заставить git перезаписывать файлы в master из ветки, которые, по его мнению, не были изменены.
Master Branch has file configA
Create branch from Master called BranchA which has file configA
Create Dev branch from Master called dev.
Make changes on dev, including changes to file configA
Merge changes from dev to master
Теперь я хотел бы перезаписать изменения в ConfigA на Master с помощью file ConfigA на branchA (исходный файл)
Он не будет сливать ConfigA обратно в мастер, потому что он не видит ConfigA на branchA как измененный файл.
Я использовал rm —cache, чтобы заставить git «переадресовать» файл ConfigA в коммит на branchA, но он по-прежнему игнорирует его.
Есть ли какая-либо команда, чтобы заставить git объединить файлы из ветки, даже если он не считает, что они были изменены?
Спасибо
Комментарии:
1. Слияние имеет изменения с момента создания общей базы — и конфигурация файла на подсказке ветки не изменялась с тех пор, как база, которую подсказка разделяет с подсказкой Мастера. Как указывает Вампир, вам просто нужна эта конкретная версия, и нужная вам команда такова
git checkout
.
Ответ №1:
Просто получите его содержимое и зафиксируйте его?
git checkout Master
git checkout BranchA -- configA
git commit -m "whatever"
Комментарии:
1. Спасибо, но это больше, чем один файл. Я не знаком с «— filename» после git checkout branchA. Копирует ли это файл в главную ветку?
2. @HamletHub: в ветвях файлов не так много, как в коммит -файлах. Что
git checkout <commit> -- path
нужно сделать, так это извлечь файлpath
(или несколько файлов, если это каталог) в область индекса / промежуточной области и перейти к рабочему дереву. Эти файлы теперь находятся как в вашем рабочем дереве, так иgit add
в индексной / промежуточной области, где они будут находиться при следующем коммите, который вы сделаете. Выполнение коммита переместит текущее имя ветки, чтобы указать на новый коммит, который вы только что сделали, чтобы они были в коммите подсказки на ветке. Это придирчивая / правильная версия «да, это помещает их в ветку» 🙂