Различия между фиксацией, фиксацией и нажатием, фиксацией и синхронизацией

149

Я использую Visual Studio 2013, и я сталкиваюсь с 3 вариантами, когда я фиксирую свой код C #. Мне нужно объяснить различия между каждым из вариантов в отношении того, что происходит с моим локальным репо по сравнению с репозиторием GitHub.

  • Вариант 1 говорит Коммит
  • Вариант 2 говорит «Принять и нажать»
  • Вариант 3 говорит «Принять и синхронизировать»

Я не совсем понимаю разницу между двумя последними вариантами. Когда я должен использовать Commit и Sync, а не Commit и Push?

Альфред Валиго
источник

Ответы:

216
  1. Commit просто запишет ваши изменения, которые вы внесли на локальный компьютер. Это не помечает изменения в удаленном хранилище.
  2. Commit и Push выполнят вышеперечисленное и отправят его в удаленный репозиторий. Это означает, что любые внесенные вами изменения также будут сохранены в удаленном хранилище.
  3. Commit и Sync делают три вещи. Во-первых, это совершит. Во-вторых, он выполнит извлечение (получает обновленную информацию из удаленного репо). Наконец-то это подтолкнет.

Смотрите больше от Microsoft здесь

camiblanch
источник
Я действительно не получаю "Commit and Sync". Во-первых, это будет зафиксировано. Во-вторых, он будет тянуть, наконец, он будет толкать. Почему push требуется здесь, когда изменения кода уже зафиксированы в удаленном репозитории (нет изменений для push).
Бхуван Пандей
6
@BhuwanPandey Выполнение «коммита» не включает «толчок». Они отдельные. Только «push» обновит ваш коммит в удаленном хранилище. Посмотрите изображение в другом ответе, чтобы увидеть это. «Commit» переходит из индекса в локальный репозиторий, в то время как «push» завершается переходом из локального репозитория в удаленный репозиторий
camiblanch
Может ли операция синхронизации вызывать конфликты, когда в приложение одновременно работают несколько пользователей?
Мурали Дар Даршан
Я использую Visual Studio 2017, и команда Commit и Sync не полностью выдвигает ваши изменения. Я говорю это потому, что при выполнении синхронизации мои изменения отображаются на вкладке истории в Visual Studio, но на сайте Github они не отображаются. Мне пришлось выполнить команду Push после Commig и Sync, а затем мои изменения появились на сайте Github.
Фабиано
Я думаю, что путаница возникает из-за того, что Commit отправляет файлы в удаленный репозиторий. Фактически Commit просто записывает ваши правки в локальный репозиторий. Без Push он никогда не попадет на сервер.
Алан Бальжеу
72

Чтобы добавить к ответу Camieblanch. Я нашел эту полезную картинку / пост от tanascius ( здесь ). «Вот хорошая картинка от Оливера Стила, которая объясняет модель git и команды:» введите описание изображения здесь

A.sharif
источник
1
Но где Синхронизация на этой картинке?
Алан Бальжеу
2
Это не существует на картинке. Если вы вернетесь к ответу «camiblanch». Он фиксирует ваше локальное репо, пытается синхронизировать (объединить) удаленное репо с вашим локальным репо, а затем передает объединенное локальное репо в удаленное репо.
А.Шариф