Возьмите Current Git Branch и "сбросьте" его содержимое до Master - PullRequest
8 голосов
/ 17 октября 2011

На работе у каждого разработчика есть своя ветка разработки, над которой мы работаем, т.е.ответвление = dev_name_of_employee.IE.dev_jon

dev_jon имеет новую функцию с более чем 100 коммитами, которая не готова к тестированию или развертыванию, поэтому я создал другую ветку, чтобы поместить эту новую функцию в с именем staging_jon (мог бы называть ее holding_jon, как угодно).

Теперь мне нужно запустить другую функцию, чтобы dev_jon содержал содержимое master.Вроде возврата обратно к мастеру.

Как я могу сделать это, не удаляя dev_jon и его удаленную ветвь, а затем воссоздавая его из master?Я не могу поставить все эти изменения, потому что они уже сдвинуты.

Или есть ли лучший способ заставить каждого сотрудника работать в его / ее собственной подчиненной ветви во время разработки?

Ответы [ 3 ]

14 голосов
/ 17 октября 2011

В dev_jon вы можете сделать:

git reset --hard master

Может быть не применимо напрямую / не актуально, но вы можете посмотреть на поток GitHub: http://scottchacon.com/2011/08/31/github-flow.html

5 голосов
/ 17 октября 2011

Я не думаю, что ваша текущая модель действительно идеальна, разработчик должен иметь возможность разрабатывать несколько функций одновременно, поэтому только одна ветвь на разработчика не самая гибкая. В любом случае, в вашей ситуации, что бы я сделал, если бы dev_jon отслеживал origin / master:

git reset --hard origin/master

Это также предполагает, что вы в данный момент находитесь на ветке dev_jon.

Надеюсь, это поможет,

2 голосов
/ 17 октября 2011

Вы можете выполнить полный сброс, чтобы ваша ветвь dev-jon была такой же, как и главная, но вы должны быть осторожны, когда придете к публикации своей новой работы.Удаленная ветвь origin\dev_jon будет вашей старой функцией, и когда вы нажмете кнопку, вы получите предупреждение, подобное следующему

 ! [rejected]        dev_jon -> dev_jon (non-fast-forward)
error: failed to push some refs to '/tmp/example'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again.  See the
'Note about fast-forwards' section of 'git push --help' for details.

Рассмотрите возможность создания ветви функции, как предложено larsmans.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...