Есть спецы по .git? Нужно объединить свой код с чужим. - Форум успешных вебмастеров - GoFuckBiz.com
 
 
Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Бизнес-решения > Скрипты, программы и технические решения
Дата
USD/RUB90.1887
BTC/USD67406.2244
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии.

Закрытая тема
Опции темы Опции просмотра
Старый 25.10.2017, 18:50   #1
klim
Senior Member
 
Аватар для klim
 
Регистрация: 12.01.2009
Сообщений: 532
Бабло: $108200
По умолчанию Есть спецы по .git? Нужно объединить свой код с чужим.

У меня чужой репозитарий, я вношу в него свои изменения.
Как сохранить свой код/текс/и т.п при обновлении автором своего репозитария?
Например, я скачал у автора:
PHP код:
$a 2;
$b 5;
if(
$a $b 10){
     
$action1;
} else {
     
$action2;

Я внес изменения и закоммитил их у себя:
PHP код:
$a 2;
$b 10//поменял значение переменной с 5 на 10
if($a $b 10){
     
$action1;
} else {
     
$action2;

Автор выпустил новою версию:
PHP код:
$a 2;
$b 5;
if(
$a $b 10){ //умножение вместо плюс
     
$action1;
} else {
     
$action2;

Я хочю, чтобы моя и его версии объединились:
PHP код:
$a 2;
$b 10//поменял значение переменной с 5 на 10
if($a $b 10){ //умножение вместо плюс
     
$action1;
} else {
     
$action2;

В гите новичёк, не пинайте, знаю, что мануал курить надо.
Пользуюсь TortoiseGit для несложных обновлений версий своих скриптов, гит консоль для меня хардкор.
klim вне форума  
Старый 27.10.2017, 18:08   #2
DF™
Member
 
Регистрация: 16.01.2010
Сообщений: 88
Бабло: $47975
Отправить сообщение для DF™ с помощью ICQ Отправить сообщение для DF™ с помощью Telegram Отправить сообщение для DF™ с помощью Skype™
По умолчанию

Я конечно не эксперт. Но раз ты закомитил, автор похоже просто откатил твои изменения. Ты конечно можешь заново их внести, но он может снова откатить.

То что ты хочешь объединить это, да еще на автомате, сомневаюсь в итоге будет рабочая версия. Непонятно какие правки вносились в какой последовательности, он работал со своим кодом и на основании него вносил правки, ты со своим.И теперь ты хочешь код перемешать на автомате. Команда такая может даже и есть, но я вручную в таких случаях сверяю код, diff редактором и смотрю какие изменения вносить или оставлять.
Это типа как вы вывели два разных животных. И ты теперь хочешь не задумываясь взять голову от одного и пришить к другому, не факт что в итоге получиться что-то жизнеспособное!
__________________
Софт для вебмастеров, web-программирование С++/PHP/MySQL: https://dfservice.com
Партнерка для вебмастерских ресурсов: https://dfservice.com/ruafl/
DF™ вне форума  
Старый 27.10.2017, 18:30   #3
roddik
Senior Member
 
Аватар для roddik
 
Регистрация: 12.01.2009
Сообщений: 346
Бабло: $86613
По умолчанию

Цитата:
Сообщение от DF™ Посмотреть сообщение
Я конечно не эксперт. Но раз ты закомитил, автор похоже просто откатил твои изменения. Ты конечно можешь заново их внести, но он может снова откатить.
он закоммитил, а не запушил

ТС, в чем проблема? Коммит локальный, делаешь git pull, гит где сможет сам объединит строчки, в твоем случае он скажет конфликт, руками (или лучше в иде) резолвишь конфликт, коммитишь, пушишь. Чтобы такое было реже, надо чаще подтягивать изменения
roddik вне форума  
Старый 27.10.2017, 18:59   #4
malishka
Ебланнед
 
Регистрация: 28.11.2009
Сообщений: 875
Бабло: $257825
По умолчанию

git pull

но оно практически всегда глючит

как и в целом git - идея вроде хорошая а реализация так себе
конечно программисты будут орать что это охуенный инструмент , наверное кто-то даже всерьез даже так думает , остальные понимают что это еще один скилл за который дополнительно можно снять бабла )
__________________
Edu-Revenue.com – самая прибыльная партнерка в нише эссе. Платят до 75% от каждой новой продажи и до 35% за ребил!
malishka вне форума  
Старый 28.10.2017, 09:45   #5
DigitalGambler
Юниор
 
Регистрация: 02.07.2016
Сообщений: 4
Бабло: $1870
По умолчанию

Свои изменения лучше вообще вести в отдельной ветке и при необходимости делать merge.

Цитата:
Сообщение от klim Посмотреть сообщение
Я хочю, чтобы моя и его версии объединились
Если версии нужно объединить только в твоем локальном репозитории, делай merge основной ветки (обычно master) в свою ветку, попутно разрешая конфликты.

Если нужно, чтобы твои изменения попали в чужой репозиторий, тогда наоборот делай merge своей ветки в основную, разрешая конфликты, и затем push в основную ветку. В гитхабе такое делается через pull request.
DigitalGambler вне форума  
Старый 28.10.2017, 11:47   #6
klim
Senior Member
 
Аватар для klim
 
Регистрация: 12.01.2009
Сообщений: 532
Бабло: $108200
ТС -->
автор темы ТС По умолчанию

Цитата:
Сообщение от DigitalGambler Посмотреть сообщение
Если версии нужно объединить только в твоем локальном репозитории, делай merge основной ветки (обычно master) в свою ветку, попутно разрешая конфликты.
Всем ответившим - спасибо, уже начитался инструкций. Merge решает данную проблему, конфликты приходится править руками, ибо это не есть проблема git, но он правку в разы облегчает.
klim вне форума