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


149

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

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

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

Ответы:


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

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


Я действительно не получаю "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 и команды:» введите описание изображения здесь


1
Но где Синхронизация на этой картинке?
Алан Бальжеу

2
Это не существует на картинке. Если вы вернетесь к ответу «camiblanch». Он фиксирует ваше локальное репо, пытается синхронизировать (объединить) удаленное репо с вашим локальным репо, а затем передает объединенное локальное репо в удаленное репо.
А.Шариф

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.