Подтвердить что ты не робот

Когда мне нужно выполнить "git pull", до или после "git добавить, git commit"?

Каков правильный путь?

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 для создания отслеживаемого и измененного файла. Не включать новый файл в репозиторий. Изменяет ли это порядок команд?

4b9b3361

Ответ 1

pull = выборка + слияние.

Вам необходимо зафиксировать, что вы сделали до слияния.

Так вытащите после фиксации.

Ответ 2

Я бы предложил вытащить из удаленной ветки как можно чаще, чтобы свести к минимуму большие слияния и возможные конфликты.

Сказав это, я бы пошел с первым вариантом:

git add foo.js
git commit foo.js -m "commit"
git pull
git push

Завершите свои изменения перед тем, как потянуть, чтобы ваши коммиты были объединены с удаленными изменениями во время pull. Это может привести к конфликтам, с которыми вы можете начать понимать, что ваш код уже совершил, если что-то пойдет не так, и вы должны прервать слияние по любой причине.

Я уверен, что кто-то не согласится со мной, хотя, я не думаю, что есть правильный способ сделать этот поток слияния, только то, что лучше всего подходит для людей.

Ответ 3

Я думаю, что лучший способ сделать это.

введите свои локальные изменения

git stash

обновить ветвь до последнего кода

git pull

Объедините локальные изменения в последний код

git stash apply

Добавить, зафиксировать и нажимать изменения

git add
git commit
git push 

По моему опыту, это путь к наименьшему сопротивлению с git (в командной строке)

Ответ 4

Вы хотите, чтобы ваши изменения сидели поверх текущего состояния удаленной ветки. Так что, вероятно, вы хотите потянуть прямо перед тем, как совершить. После этого повторите изменения.

"Грязные" локальные файлы не являются проблемой, если нет конфликтов с удаленной ветвью. Если есть конфликты, то слияние не удастся, поэтому нет риска или опасности при переносе, прежде чем совершать локальные изменения.

Ответ 5

Я думаю, что git pull --rebase - самый чистый способ установить локальные недавние коммиты поверх удаленных коммитов, которые у вас нет в определенной точке.

Таким образом, вам не придется тянуть каждый раз, когда вы хотите начать вносить изменения.