Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.97.14.87] |
|
Страницы: (9) [1] 2 3 ... 8 9 все ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
Не понимаю вообще! Это какое-то говнище просто.
Короче говоря, есть довольно большая задача. Седеллал для нее отдельный бранч. Делаю, комичу. Теперь хочу синхронизировать с мастером, но пока что в мои планы не входит комитить в мастер. Т.е. я хочу взять актуальную версию мастера с замерджить ее в свой бранч. Как, черт побори (тут используются другие слова), это сделать? |
Сообщ.
#2
,
|
|
|
git checkout master git pull --rebase git checkout your_branch git rebase master или git fetch git rebase origin/master Вот здесь подробнее. Если работаешь с этим добром под виндой - ставь TortuiseGit, выбираешь там (в контекстной менюшке эксплорера) команду rebase и в открывшимся диалоге выбираешь ветку, на которую будешь перебазироваться. Добавлено А вообще матюги при начале работы с git'ом - дело обычное. Непривычная у него модель ведения репозитория. Но потом, вроде, проникаешься. |
Сообщ.
#3
,
|
|
|
консоль галимая
|
Сообщ.
#4
,
|
|
|
Толи я не понял, толи это не совсем то.
Я хочу сделать так: Прикреплённая картинка
Добавлено Цитата Flex Ferrum @ Вот здесь подробнее. Может это и подробнее, но почему там стрелки все в обратном направлении? Я из этих картинок нихрена не понял Хрен поймешь, в каком направлении развиваются мастер и бранчи |
Сообщ.
#5
,
|
|
|
Цитата Fester @ Толи я не понял, толи это не совсем то. Я хочу сделать так: Ты не понял. Это именно то. Смотри, ты в какой-то момент отбранчевался и начинаешь пилить свой мегафункционал. Пилишь-пилишь, коммитишь в свой бранч. master за это время уже уехал. У тебя естественное желание - подсосать всё из мастера и накатить "сверху" свои коммиты. Для этого ты делаешь следующее: 1. Обновляешь свой локальный мастер: git checkout master git pull --rebase Таким образом в твоём локальном мастере оказываются все коммиты с сервера. 2. Перебазируешь свою ветку на новый мастер: git checkout your_branch git rebase master То есть переключаешься обратно на свою ветку и ребейзишь её на актуальный мастер. git при этом делает своеобразный merge - забирает коммиты из свежего (локального) мастера и пытается накатить сверху твои коммиты. Может получиться не для всего. В этом случае возникнут конфликты, которые он предложит тебе отрезолвить. Есть другой вариант (применяется у нас в силу определённых обстоятельств непреодолимой силы в виде тимлида): 1. Переключаешься на мастер. 2. Ребейзишься 3. Отрезаешь от него новую ветку типа your_branch_new 4. Переключаешься на неё 5. Мерджишь (git merge) в эту новую ветку свою старую ветку. 6. Профит - получаешь нужное тебе объединение. Чтобы не придумывать новые имена, можешь старую предварительно переименовать в your_branch_old, отрезать новую с привычным именем, а старую (после мерджа) удалять. |
Сообщ.
#6
,
|
|
|
Flex Ferrum
и что, git всегда корректно сам объеденияет коды? Если в мастере код поменяли местами(по тексту перенесли в другое место) он это поймет? |
Сообщ.
#7
,
|
|
|
Цитата ^D^ima @ Flex Ferrum и что, git всегда корректно сам объеденияет коды? Если в мастере код поменяли местами(по тексту перенесли в другое место) он это поймет? Ну, не всегда сам, не всегда корректно, но в целом да, с задачей справляется. |
Сообщ.
#8
,
|
|
|
Цитата Flex Ferrum @ 1. Обновляешь свой локальный мастер: Цитата Flex Ferrum @ 2. Перебазируешь свою ветку на новый мастер: Цитата Flex Ferrum @ То есть переключаешься обратно на свою ветку и ребейзишь её на актуальный мастер. &)$ Какой такой "локальный мастер"? Какой "новый мастер"? Еще какой-то "актуальный мастер". У меня один мастер и один бранч. Что из этих трех мастеров - мастер, а что бранч? Накой хрен мне столько всякой бесполезной шняги? Уши оборвать этому Торвальдсу! Цитата Flex Ferrum @ 1. Переключаешься на мастер. 2. Ребейзишься 3. Отрезаешь от него новую ветку типа your_branch_new 4. Переключаешься на неё 5. Мерджишь (git merge) в эту новую ветку свою старую ветку. 6. Профит - получаешь нужное тебе объединение. Почему все тащатся с этого говна? |
Сообщ.
#9
,
|
|
|
Цитата Fester @ Почему все тащатся с этого говна? Модно же ) |
Сообщ.
#10
,
|
|
|
Цитата Fester @ Какой такой "локальный мастер"? Какой "новый мастер"? Еще какой-то "актуальный мастер". У меня один мастер и один бранч. Что из этих трех мастеров - мастер, а что бранч? Накой хрен мне столько всякой бесполезной шняги? Уши оборвать этому Торвальдсу! Я думаю, тебе стоит начать с того, чтобы почитать - что такое git и как он работает. |
Сообщ.
#11
,
|
|
|
Цитата Fester @ Почему все тащатся с этого говна? Видимо, такова судьба всех продуктов Торвальдса |
Сообщ.
#12
,
|
|
|
Просто эта система контроля версий принципиально отличается от тех, с которыми ты, видимо, привык работать до этого. Она построена не на "традиционной" клиент-серверной архитектуре, где есть выделенный сервер, а у пользователей - локальный снимок, с которым они работают. git - это чисто распределённая система равноправных репозиториев, которые определённым образом можно синхронизировать. И в этой системе git server - это просто ещё одна копия репозитория, в которую можно заливать данные. При этом у всех пользователей - свои, локальные, полноценные копии. Поэтому я и говорю, что есть "локальный мастер" (версия master-ветки в репозитории на твоём диске), а есть master в репозитории на сервере.
|
Сообщ.
#13
,
|
|
|
Цитата Fester @ Гит этим славится. Он очень недружелюбен к юзверям. Чтобы полноценно работать с гитом нужно тщательно изучить принципы его работы. Вместо того чтобы заниматься делом, тебе приходится ковырятся в гайдах, писать на форумах, по сто раз клонировать удаленную репу. Торвальдс сделал систему заточенную под его собственные нужды, то бишь разработка ядра линупса, а хомячки дружно подхватили и сделали его де-факто стандартом. Пичаль, бида. Не понимаю вообще! Это какое-то говнище просто. |
Сообщ.
#14
,
|
|
|
Цитата applegame @ а хомячки дружно подхватили и сделали его де-факто стандартом. Пичаль, бида. Что-то этих хомячков подозрительно много. А публичные гит-сервера типа GitHub, GitLab, BitBucket и прочие, растут и множатся, как грибы после дождя. |
Сообщ.
#15
,
|
|
|
Цитата Flex Ferrum @ Mercurial работает на тех же принципах, что и Git, но при этом не требует долгого и вдумчивого курения мануалов для относительно простых операций. Так что это не оправдание. Просто эта система контроля версий принципиально отличается от тех, с которыми ты, видимо, привык работать до этого. Она построена не на "традиционной" клиент-серверной архитектуре, где есть выделенный сервер, а у пользователей - локальный снимок, с которым они работают. git - это чисто распределённая система равноправных репозиториев, которые определённым образом можно синхронизировать. И в этой системе git server - это просто ещё одна копия репозитория, в которую можно заливать данные. При этом у всех пользователей - свои, локальные, полноценные копии. Поэтому я и говорю, что есть "локальный мастер" (версия master-ветки в репозитории на твоём диске), а есть master в репозитории на сервере. |