Junior Coder, обычными командами.
В гите мы сначала индексируем изменения командой add, затем коммитим командой commit, потом можем отправить во внешний репозиторий командой push.
Вам надо бы изучить сначала инструмент. Вы не сможете работать с гитом просто вбивая какие-то заклинания в терминал, смысл которых вы не понимаете.
Важно отметить, что git commit -a автоматически коммитит только измененные файлы, которые уже были добавлены в репозиторий. Если у вас есть новые файлы, которые вы хотите добавить в репозиторий, вам придется использовать git add для их подготовки к коммиту.
А ещё эта команда не самодостаточна, а лишь запускает текстовый редактор, в котором вы дописываете сценарий пересборки ветки. Надо бы добавить остальные шаги для полноты ответа.
Права доступа гит не хранит.
А вот когда кто-то поменял концы строк, то такое может произойти.
Согласуйте в команде этот момент, чтобы каждый раз не чинить.
Вы не работаете, а вбиваете в терминал непонятные заклинания. Это танцы с бубном, а не работа.
Гит очень простой, но не является интуитивно-понятным инструментом, который можно просто начать использовать. Вам надо перед этим понять логику его работы как минимум. Почитать руководство.
Если у вас конфликт с одной веткой, то почему вы называете её в множественном числе?
sreug, сделайте сначала reset на первый коммит в режиме mixed.
Затем новый коммит, отметив галочку Amend. Это «изменит» первый коммит, вместо создания нового.
А squash тут не прокатит, так как маловато коммитов ещё.
У автора не прокатило, так как нельзя изменить самый первый коммит репозитория через перебазирование. Так как отсутствует сама база.
Ваша команда выдаст ошибку, так как ~2 это ссылка на два коммита назад, а у нас позади есть только один.
7GBars, в тот момент, когда вы завершили слияние dev в main, все коммиты этих веток начнут принадлежать обоим веткам одновременно. На то оно и слияние.
Может вам проще рассматривать сам граф цепочек коммитов, чтобы видеть то что не видно в линейном журнале?
Попробуйте ключик --graph или пользуйтесь GUI-клиентом, который показывает всё дерево, со всеми разветвлениями и слияниями.
Если я вас правильно понял, то «перечение» — это все коммиты, созданные до момента слияния веток.
Всё что новее в dev — оно пока не принадлежит main и не попадает в пересечение.
Ну формально получился вопрос. И я даже вам на него ответил. Но сомневаюсь, что вы хотели получить ответ именно на этот вопрос: «нужна (ли) короткая инструкция?»
Видите как один символ меняет смысл предложения, причем меняет совсем не в ту сторону.