Я начал использовать git (на github) и у меня возник вопрос о рабочем процессе новичка.Заранее извиняюсь, если описание многословно, но я хотел описать то, что я думаю, поскольку я прохожу через процесс, чтобы вы могли исправить меня.Я также использую плагин Eclipse EGIT, который, как я понимаю, никогда не будет так же хорош, как использование командной строки, а просто терпит меня.
Наш проект настроен таким образом, что у моего партнера есть мастер-репо, а я частный соавтор.Всякий раз, когда я толкаю, я толкаю прямо к его репо.В общем, мы в порядке с фиксацией, вытягиванием и толканием, пока нет конфликтов.Проблема возникает всякий раз, когда возникают конфликты.Вот пример:
- Мой партнер и я начинаем загружать последний код в наши соответствующие рабочие репозитории.Нет проблем.
- Я изменяю FileA и FileB, добавляю, фиксирую и нажимаю их обоих.Никаких проб.
- Тем временем мой партнер изменяет FileA, а затем пытается получить мои обновления.
- Eclipse выдает ему ошибку : конфликт CheckOut с FileA
Мы отправляемся в git bash land и получаем более полезное сообщение после выполнения git pull:
error: Ваши локальные изменения ... записаны слиянием: FileA.Пожалуйста, передайте изменения или спрячьте их до того, как вы сможете объединиться.
ОК, достаточно справедливо.Он фиксирует свои изменения (FileA) и пытается выполнить повторную попытку (через Eclipse).
Он получает сообщение о конфликте FileA.Хорошо, это ожидается.Теперь он переходит к разрешению конфликта в FileA и делает git add для FileA, чтобы указать, что он разрешен.
Теперь он готов совершить и нажать.Он ожидает, что его объединенные изменения в FileA будут перенесены.Но теперь, вот часть, которую я не понимаю.Несмотря на то, что он вообще не изменял FileB, Eclipse определяет, что он является частью его коммита по умолчанию, поэтому ему необходимо вручную снять флажок, чтобы избежать повторной отправки FileB и, таким образом, избегать нажатия FileB (поскольку в него не было внесено никаких изменений).Но даже в этом случае FileB выталкивается вверх по течению.В результате он не только нажимает на FileA, но и на FileB.
Я хотел бы знать, правильно ли мы поступаем, и поскольку мы, вероятно, не, совет приветствуется.