Ответ 1
pull = выборка + слияние.
Вам необходимо зафиксировать, что вы сделали до слияния.
Так вытащите после фиксации.
Каков правильный путь?
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
для создания отслеживаемого и измененного файла. Не включать новый файл в репозиторий. Изменяет ли это порядок команд?
pull = выборка + слияние.
Вам необходимо зафиксировать, что вы сделали до слияния.
Так вытащите после фиксации.
Я бы предложил вытащить из удаленной ветки как можно чаще, чтобы свести к минимуму большие слияния и возможные конфликты.
Сказав это, я бы пошел с первым вариантом:
git add foo.js
git commit foo.js -m "commit"
git pull
git push
Завершите свои изменения перед тем, как потянуть, чтобы ваши коммиты были объединены с удаленными изменениями во время pull. Это может привести к конфликтам, с которыми вы можете начать понимать, что ваш код уже совершил, если что-то пойдет не так, и вы должны прервать слияние по любой причине.
Я уверен, что кто-то не согласится со мной, хотя, я не думаю, что есть правильный способ сделать этот поток слияния, только то, что лучше всего подходит для людей.
Я думаю, что лучший способ сделать это.
введите свои локальные изменения
git stash
обновить ветвь до последнего кода
git pull
Объедините локальные изменения в последний код
git stash apply
Добавить, зафиксировать и нажимать изменения
git add
git commit
git push
По моему опыту, это путь к наименьшему сопротивлению с git (в командной строке)
Вы хотите, чтобы ваши изменения сидели поверх текущего состояния удаленной ветки. Так что, вероятно, вы хотите потянуть прямо перед тем, как совершить. После этого повторите изменения.
"Грязные" локальные файлы не являются проблемой, если нет конфликтов с удаленной ветвью. Если есть конфликты, то слияние не удастся, поэтому нет риска или опасности при переносе, прежде чем совершать локальные изменения.
Я думаю, что git pull --rebase
- самый чистый способ установить локальные недавние коммиты поверх удаленных коммитов, которые у вас нет в определенной точке.
Таким образом, вам не придется тянуть каждый раз, когда вы хотите начать вносить изменения.