2015-03-18 4 views
1

Этот вопрос может показаться тривиальным, но я действительно не знаю, как это сделать правильно ... Я работаю над проектом с открытым исходным кодом, а исходники находятся на Github, поэтому я разветвил это репо, добавил «удаленный восходящий поток», указав обратно на это оригинальное репо, а также создал ветку в своем разветвленном репо и внес некоторые изменения. Это выглядит примерно так:Как обновить мою ветку с последними изменениями от восходящего потока

$git remote -v 
origin https://github.com/my_github_account/project_name (fetch) 
origin https://github.com/my_github_account/project_name (push) 
upstream https://github.com/project_name/repo_name (fetch) 
upstream https://github.com/project_name/repo_name (push) 

$git branch 
    master 
* test_branch 

После внесения некоторых изменений на мой «test_branch», есть также некоторые новые изменения в вышестоящем, так что я хочу, чтобы получить последние изменения от вверх по течению, объединить их в мое test_branch и посмотрите, все ли работает нормально. Я пробовал:

git pull upstream master 

, который прекрасно работает для этой цели, но он также создал «новый коммит», так как фиксации сообщения будут также показаны при создании запроса на тянущий к проекту, если потянуть вверх часто изменяется таким образом, будет много

Merge branch 'master' of https://github.com/project_name/repo_name into test_branch 

сообщений показывает, что вид неаккуратно к другим, и я не вижу тянуть запросы других людей содержат эти виды сообщений либо ... (или может быть какой-то способ избавиться от этих сообщений?)

Я также иду ogled его и попробовал:

git pull --rebase upstream master 

, а затем сделать:

git push origin test_branch 

, но потом я получил некоторую ошибку говоря что-то вроде:

! [rejected]  test_branch -> test_branch (non-fast-forward) 
error: failed to push some refs to 'https://github.com/my_github_account/project_name' 
hint: Updates were rejected because the tip of your current branch is behind 
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull') 
hint: before pushing again. 
hint: See the 'Note about fast-forwards' in 'git push --help' for details. 

Хм ... Я не имею ясное представление о том, что это значит ... Может быть, я не делал это правильно ... Итак, как обычно процедура получения последних изменений от восходящего потока, интегрировать/объединить их в мою ветку?

Заранее благодарен!

ответ

0

Второй подход правильный (воспроизведение вашего test_branch поверх обновленного master).

Но он также будет иметь ожидаемый побочный эффект переписывания истории вашего test_branch, с вами того, чтобы заставить толкать его к развилке

git push --force origin test_branch 

Поскольку это ваша вилка и никто другой работает над origin/test_branch, это нормально, и даже если у вас был PR, этот запрос Pull обнаружил бы силовое нажатие и обновление соответственно.

+0

Удивительный, спасибо! – Fujiolydak

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