Ми використовуємо git і маємо головну гілку та гілки розробників. Мені потрібно додати нову функцію, а потім перезавантажити зобов’язання для управління, а потім натиснути на CI-сервер.
Проблема полягає в тому, що якщо у мене виникають конфлікти під час перезавантаження, я не можу натиснути на свою віддалену гілку розробника (на Github) після того, як ребаза буде завершена, поки я не витягну свою віддалену гілку. Це спричиняє повторювані коміти. Коли конфліктів немає, працює так, як очікувалося.
питання: після відновлення бази даних та вирішення конфліктів, як синхронізувати свої локальні та віддалені гілки розробників, не створюючи повторюваних комітетів
Налаштування:
// master branch is the main branch
git checkout master
git checkout -b myNewFeature
// I will work on this at work and at home
git push origin myNewFeature
// work work work on myNewFeature
// master branch has been updated and will conflict with myNewFeature
git pull --rebase origin master
// we have conflicts
// solve conflict
git rebase --continue
//repeat until rebase is complete
git push origin myNewFeature
//ERROR
error: failed to push some refs to 'git@github.com:ariklevy/dropLocker.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
hint: before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
// do what git says and pull
git pull origin myNewFeature
git push origin myNewFeature
// Now I have duplicate commits on the remote branch myNewFeature
EDIT
Так звучить, що це порушить робочий процес:
developer1 працює над myNewFeature developer2, що працює над йогоNewFeature, обидва використовують master як основну гілку
developer2 об'єднує myNewFeature у своюNewFeature
developer1 відновлює, вирішує конфлікти, а потім примушує натиснути на віддалену гілку для myNewFeature
через пару днів developer2 знову об'єднує myNewFeature у своюNewFeature
Чи це змусить інших розробників ненавидіти розробника1?
force
поштовх)
rewriting history
, що цеrebase
we
? ти в команді більше, ніж тільки ти?they
скажіть (люди, які знають більше, ніж я), що якщо ви ділитесь своїм кодом, ви не повинні користуватисяrebase
. Чому ти просто не робишgit pull
іgit merge
?