Git: лучший способ коммит / пуш

Когда я работал над проектами, использующими систему управления git, каждый раз, когда я хочу зафиксировать, затем выдвигаю свои модификации, git pull до. Но проблемы, с которыми я сталкиваюсь, состоят в том, что во многих случаях git запрещает мне тянуть, потому что я должен прежде, чем совершить свои локальные изменения. Я имел обыкновение делать то, что у меня есть другое чистое репозиторий git, где я не изменяю его напрямую, но когда мне нужно, я использую его для git pull затем объедините мои модификации с помощью meld из другого репозитория, где я работаю. Но я думаю, что этот путь не самый лучший и теряет много времени, пора его оптимизировать. Я думаю, что я создаю другую локальную ветку "work_branch" и фиксирую в ней свои модификации, затем объединяю коммиты из "work_branch" в "master", затем добавляю master после pull. Так что сценарий должен быть таким:

git branch work_branch
git checkout work_branch
#modify in branch work_branch
git commit
git add <files list>
git commit -m "fixes branch work" #local commit
gitk ==> get the id of "fixes branch work" commit (example: 5b099287c229e16c24bfcdbfd6fba384cfe165e6)
git checkout master
git pull
git cherry-pick 5b099287c229e16c24bfcdbfd6fba384cfe165e6 #merge "fixes branch work" commit from work_branch to master branch
git push

Проблема, с которой я столкнулся, заключается в том, что после третьего шага (#modify в ветке work_branch) каждый модификатор в ветке work_branch просматривается главной веткой, но я хочу, чтобы главная ветка могла видеть из work_branch только объединенный коммит после git cherry-pick команда. Есть ли способ улучшить мое решение. Или есть другой хороший способ оптимизировать работу с git.

1 ответ

Git - это VCS (система контроля версий).
Как обычно используется git
введите описание изображения здесь

Ветка компонента создается там, где вам необходимо внести изменения, в то время как работа идет в основной ветви (например, исправление ошибок) и когда ветка функции готова для добавления в мастер (т.е. вы готовы добавить функцию в базу вашего основного кода).) вы git merge <feature branch>

Как вы используете это
введите описание изображения здесь

Это немного грязно. Попробуйте следовать обычному методу, в котором вы фиксируете каждое нужное вам изменение в своем коде и, в конце концов, объединяете его с мастером.

Еще одно предложение, используйте git rebase, (Google это, есть много объясняя это визуально). Также Google git fetch затем git merge origin/master Мастер-метод для отражения изменений мастера в вашем рабочем репо. использование rebase , чтобы увидеть только один коммит (не коммит + коммит слияние) в вашем репо

В основном, пройдите учебник по git. Это легко, и вы поймете основы менее чем за 10 минут.

Другие вопросы по тегам