У меня есть два проекта. Один из них является «официальным» проектом, а второй - легкой модификацией (некоторые файлы добавлены). Я создал новую ветку и положил в них новые файлы. Но в процессе разработки некоторые файлы, общие для обеих веток, изменяются.
Как мне зафиксировать только эти файлы?
git
git-branch
git-commit
Захваты
источник
источник
Ответы:
Я предполагаю, что вы хотите зафиксировать изменения в одной ветви, а затем сделать эти изменения видимыми в другой ветви. В git у вас не должно быть изменений поверх HEAD при смене веток.
Вы фиксируете только измененные файлы:
Или, если вы уверены, что у вас есть чистая площадка, вы можете
Если вы хотите сделать этот коммит доступным в обеих ветках, вы делаете
источник
git commit [some files]
который подразумевает--only
переключение). Первый пример (git add [some files]
сопровождаемыйgit commit
) также передаст любые другие изменения, которые были поставлены.Получить список файлов, которые вы хотите зафиксировать
Добавить файлы в постановку
Проверьте, что вы делаете
Зафиксируйте файлы сообщением
Если вы случайно зафиксируете неправильные файлы
Если вы хотите разархивировать файлы и начать заново
источник
Вы можете зафиксировать некоторые обновленные файлы, например так:
источник
Часть этого кажется «неполной»
Группы людей НЕ будут знать, должны ли они использовать кавычки и т.д ..
Добавьте 1 конкретный файл с указанием пути расположения, а также
Фиксация (помните, коммит только локальный, он не влияет ни на какую другую систему)
Нажмите для удаленного репо
Другие ответы показывают тайник и т. Д., Которые вы иногда захотите сделать
источник
Если вы уже создали файлы, просто удалите их:
Затем добавьте их снова и снова.
источник
Предположим, вы внесли изменения в несколько файлов, например:
Но вы хотите зафиксировать только изменения File1 и File3.
Есть два способа сделать это:
1. Поместите только эти два файла, используя:
затем совершить
затем нажмите,
2. Прямая фиксация
затем нажмите,
На самом деле первый способ полезен в том случае, если мы регулярно изменяем файлы и размещаем их -> Большие проекты, обычно живые проекты.
Но если мы модифицируем файлы, а не размещаем их, тогда мы можем сделать прямой коммит -> Небольшие проекты
источник
--only
. Тогда это будет та же команда, чтоgit commit --only file1 --only file3 -m "my message"
и при использовании ярлыка в качествеgit commit -o file1 -o file3 -m "my message"
ссылки: git-scm.com/docs/git-commitЭто простой подход, если у вас мало изменений в коде:
Затем, если вы хотите, чтобы код, который вы удалили (биты, которые вы не зафиксировали) в отдельном коммите или в другой ветке, тогда, пока он еще в этой ветке, выполните:
На шаге 5, поскольку вы уже применили хранилище и зафиксировали код, который вы хотели получить на шаге 4, diff и неотслеживаемый во вновь примененном хранилище - это просто код, который вы удалили на шаге 3 перед тем, как зафиксировать на шаге 4.
Таким образом, шаг 6 - это тайник кода, который вы [не хотели] фиксировать, поскольку вы, вероятно, действительно не хотите потерять эти изменения, верно? Таким образом, новый stash из шага 6 теперь может быть зафиксирован в этой или любой другой ветке, выполнив git stash apply в правильной ветке и зафиксировав.
Очевидно, это предполагает, что вы выполняете шаги в одном потоке, если вы храните в любой другой точке этих шагов, вам нужно будет отметить ссылку на хранилище для каждого шага выше (а не просто базовую память и применить самую последнюю копию).
источник