git: как нажать без проверки? - PullRequest
4 голосов
/ 30 декабря 2011

У меня есть два компьютера A и B, и я использую git sync некоторые файлы, например init.el.Репозитории A размещены на Unuddle.Репозитории B размещены локально.

  • init.el в A изменен и нажат.
  • init.el в B также изменен.

Вопрос заключается в следующем: как объединить изменения A в B и вставить окончательный init.el в раздел (A), , не раскрывая весь файл A в B .

Или существуетлучшее решение?

Спасибо.

Ответы [ 3 ]

2 голосов
/ 30 декабря 2011

Итак, если вы не хотите извлекать файлы, которые были изменены в A, вы можете сделать так:

На B создайте новую ветку и отправьте ее на удаленный сервис (как вы сказали, откройте):

cd path/to/init.el
git branch featureModifiedInB
git checkout featureModifiedInB
git push origin featureModifiedInB

В A извлеките обновление, созданное в B, управляйте слиянием и конфликтом:

cd path/to/init.el
git pull origin featureModifiedInB  // Or you can do fetch and manually do merging.
git checkout master
git merge featureModifiedInB

// After solve the conflict if it exists.
git push origin master

Это гарантирует, что человек, использующий B, не сможет видеть файлы, отредактированные человеком, использующим A. Но это вызовет проблему: pB не может получить отзыв о коде, который он / она создал. Но pA также может изменить ветку featureModifiedInB и позволить ей тянуться на pB (мам .. это немного хлопотно ...).

0 голосов
/ 31 декабря 2011

Если A и B совершенно не связаны (как вы говорите, «файлы A не знают о файлах B и наоборот»), вам не нужно объединять их. Просто нажмите A и B и не объединяйте их.

Если вы хотите больше разделения, создайте другой репозиторий для размещения работы в B. Используйте unuddle, чтобы разрешить / запретить доступ.

0 голосов
/ 30 декабря 2011

Есть несколько вариантов:

  • Если вы не хотите сохранять изменения А, git push -f origin master. Обратите внимание, что форсирование толчка вызовет некоторые проблемы у любого, кто ответит от вас и хочет объединиться.
  • Мягкий сброс до последнего общего коммита между A и B, git stash , вытащить, объединить, вытащить тайник (объединить тайник с текущим кодом), зафиксировать и нажать. Если кто-то ответвляется от вас после этого общего коммита, он не сможет слиться обратно очень легко, если вообще.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...