2014-09-29 3 views
14

У меня есть 2 ветви - master и developGit конфликтов тянуть просят

Я делал некоторые тянуть запросы в моих develop отделении, где она содержит 5 пунктов, в которых она так же, как число элементов в master ,

Тем не менее, кто-то совершил некоторые коммиты и pushed еще в нескольких пунктах в ветке master, и, следовательно, теперь он имеет 8 предметов.

По моей просьбе тянуть в develop до сих пор еще не утвержден/сливался, всякий раз, когда я пытался обновить мой тянуть запрос, я получаю сообщение о том, что This pull request can't be merged. You will need to resolve conflicts to be able to merge и попросил меня сделать следующее:

git fetch origin master 
git checkout develop 
git merge FETCH_HEAD 
git commit 
git push origin HEAD 

И это происходит после того, как я «вытолкнул» свои коммиты, заставляя меня смущаться время от времени. Затем я понял, что он просит меня повторно добавить и повторно зафиксировать в дополнительных 3 новых элементах. Значит, это означает, что я должен убедиться, что элементы и содержимое между этими двумя ветвями моей стороны должны быть такими же, как всегда? Я всегда использовал git pull/fetch, но будет ли лучший способ убедиться?

+0

Нет, он просит вас объединиться. Вы, похоже, смущены тем, как работают ветви - см. [Соответствующую главу в документах] (http://git-scm.com/book/en/Git-Branching) – remram

+0

@remram Наверное, я действительно смущен. Но даже в этом случае, почему он просил меня объединить мастера на разработку? Обычно для меня все наоборот – dissidia

+0

Если вы объедините мастер в разработке, тогда github сможет автоматически объединять разработку в мастер. – remram

ответ

17

Это означает, что GitHub хотел бы объединить вашу ветвь PR в master, но это невозможно, потому что есть конфликты. Как вы обсуждали в комментариях к вопросу, лучший способ справиться с этим (обычно) - объединить ветвь master в develop в командной строке. Это покажет вам конфликты и попросит вас их разрешить. После того, как вы закончите и нажали это слияние, PR будет снова слит в master, используя зеленую кнопку на GitHub.

Вы могли просто объединить свой deploy филиал в master (который я понимаю, звучит немного более разумным). В этом случае вы полностью обходите PR. Вам нужно закрыть PR «unmerged», и отдельно вы вручную нажмете фиксацию слияния на master.

Делая это первый путь,

  1. вы делаете лучше аудита путем слияния освоить на GitHub, используя PR;
  2. вы даете вашей команде возможность просмотреть ваш код после слияния, прежде чем он приземлится на master; и
  3. Если у вас есть автоматические тесты (например, Travis CI или CircleCI), которые проверяют PR, вы даете им возможность запускать ваш объединенный код.
+0

Это имеет смысл для меня тогда, особенно в случае с PR-ветвью, в котором он будет полностью отличаться от того, что я делал, когда моя ветвь 'develop' объединяется в' master' так же, как то, что вы упомянув. – dissidia

+0

Правильно. Если у вас есть одна ветвь 'develop', которая периодически сливается с' master', вам, вероятно, лучше не делать запросы на тягу из этой ветки. Если хотите, вы можете сделать запросы на тягу из определенных ветвей тем для 'deploy', а затем объединить' deploy' в 'master' в командной строке, когда вы готовы переместить набор изменений. – Peeja

+0

Эта ссылка дает хороший обзор того, как достичь утверждения Peeja о слиянии мастера в разработке: https://confluence.atlassian.com/bitbucket/resolve-merge-conflicts-704414003.html – Paul

0

Я решил использовать его с использованием интерфейса eclipse-git, как описано ниже.

1- Сохраните все изменения в ветке «dev» и нажмите их в git.

2- checkout to 'master' branch и тянуть все изменения.

3- Перейдите в раздел «Вид репозиториев Git -> разверните локальную папку» и щелкните правой кнопкой мыши по ветке «мастер» и выберите «объединить».

4- Он откроет все конфликты с красными пятнами в окне «Git staging».

5- Теперь щелкните правой кнопкой мыши по каждому красному пятну и щелкните -> «замените индексом git». что красное пятно исчезнет.

6- после этого для всего красного пятна, совершите ваше слияние с правой стороны.

7-done.

Смежные вопросы