Какой правильный путь?
git add foo.js
git commit foo.js -m "commit"
git pull
git push
Или
git pull
git add foo.js
git commit foo.js -m "commit"
git push
Или
git add foo.js
git pull
git commit foo.js -m "commit"
git push
UPD:
Я забыл упомянуть, что в этом случае я использую git add
для обработки отслеживаемый и измененный файл. Не включать новый файл в репозиторий. Это меняет порядок команд?
Ответы:
Я думаю, что лучший способ сделать это:
Сохраните свои локальные изменения:
Обновите ветку до последней версии кода
Объедините ваши локальные изменения с последним кодом:
Добавляйте, фиксируйте и отправляйте свои изменения
По моему опыту, это путь к наименьшему сопротивлению с помощью Git (по крайней мере, в командной строке).
источник
git stash
?тянуть = выборка + слияние.
Вам нужно зафиксировать то, что вы сделали, перед слиянием.
Так что тяни после коммита.
источник
rebase
вместоmerge
. Вы можете сделать это с помощьюgit commit && git rebase
илиgit pull --rebase
.git pull
после внесения моих изменений, поскольку я считаю это наиболее естественным. Хотя я понимаю, что работает много разных рабочих процессов (тайник тоже хорош), так что, вероятно, это дело вкуса.Я бы посоветовал использовать удаленную ветку как можно чаще, чтобы минимизировать большие слияния и возможные конфликты.
Сказав это, я бы выбрал первый вариант:
Зафиксируйте свои изменения перед извлечением, чтобы ваши фиксации были объединены с удаленными изменениями во время извлечения. Это может привести к конфликтам, с которыми вы можете начать разбираться, зная, что ваш код уже зафиксирован, если что-то пойдет не так, и вам придется прервать слияние по любой причине.
Я уверен, что кто-то со мной не согласится, я не думаю, что есть какой-то правильный способ сделать этот поток слияния, только тот, который лучше всего подходит для людей.
источник
git add
именно используется мой пример.Я думаю, что
git pull --rebase
это самый чистый способ установить ваши локальные недавние коммиты поверх удаленных коммитов, которых у вас нет в определенный момент.Таким образом, вам не придется тянуть каждый раз, когда вы хотите начать вносить изменения.
источник
Вы хотите, чтобы ваше изменение находилось поверх текущего состояния удаленной ветки. Так что, вероятно, вы захотите потянуть прямо перед тем, как взять на себя обязательства. После этого снова внесите изменения.
«Грязные» локальные файлы не являются проблемой, если нет конфликтов с удаленной веткой. Однако, если есть конфликты, слияние не удастся, поэтому нет риска или опасности в извлечении перед фиксацией локальных изменений.
источник