2013-02-18 2 views
3

Скажите, от моего оригинального мастера, я внесла определенные изменения в это событие и совершил изменение в момент времени t1. Затем я перебросил это в github (называя его branchA). Затем я сделал некоторые другие изменения и совершил это во время t2. Я не хочу нажимать это на branchA, но я хочу нажать его в другую ветвь, называемую branchB.нажмите ветку с предректором до github

Можно ли перечислить branchA как необходимое условие для branchB так что, когда я запрос тянуть, то разница в branchB не включает изменения совершенные ПРИО в t1, другими словами, разница в branchB необходимо показывать только разница между branchA и branchB?

Bazaar/Launchpad предлагает этот вариант, но мне не удалось найти подобную функцию в Github. (Я новичок в git, так что, возможно, это не то, что они делают в Github?)

ответ

1

Это означает, что у вас есть:

Local Repo     Upstream (GitHub Repo) 

.--.--o--x--y branchA <====> o--o--x branchA 
(master) 

Но вы хотите:

.--.--o--x branchA  <====> o--o--x branchA 
(mast) \ 
     y branchB  => you can push now 

Это означает, что вам нужно сначала переустановить на o то, что приходит после x (t1), чтобы построить branchBлокально, прежде чем нажимать его на ваш fo гк.

git checkout branchA     
git branch branchB     # creates branchB where branchA currently is 
git reset --hard origin/branchA  # reset branchA to x 
git rebase --onto master x branchB 
+0

Чтобы уточнить, если я сделаю это, когда мой 'branchA' получает объединены в' master', в диф на '' branchB' и master' теперь будет такой же, как дифф, который был показан там в 'branchB'? – user1508893

+0

@ user1508893 yes: вы переустанавливаете этот diff на master, чтобы изолировать его в своей ветви. – VonC

+0

Спасибо, это имеет смысл сейчас. (Это что-то, что вы знаете, потому что у вас есть опыт работы с 'git' или есть какие-то документации на этот материал?) – user1508893

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