2015-03-03 4 views
0

Я хотел бы создать git-репозиторий, в котором я могу нажать/вытащить свои изменения в/из разных мест в зависимости от того, на какой ветке я нахожусь.
Идея состоит в том, чтобы иметь две ветви:Git: push в разные местоположения на ветку

  • мастера: для внутреннего развития (я запретил публиковать его на всех) я
    будет толкать/тянуть из местного Stash
  • Dev: для протяжки изменения от GitHub и внести свой вклад обратно, а также использовать его для слияния изменения иногда к мастеру

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

Как это исправить? Если это не путь, пожалуйста, предложите мне наилучшую практику.

+0

[мерзавец конфигурации документы] (https://www.kernel.org/pub/software/scm /git/docs/git-config.html) имеют настройки для такого рода вещей. Найдите элементы 'branch.' и' remote.'. – jthill

ответ

1

Длинный формат git push является:

git push remotename localbranch:remotebranch 

Это дает вам всю гибкость, необходимую для селективного толкать ветви к желаемым пультами.

Примеры

  1. master Push-ветви к origin

    git push origin master 
    
  2. Нажмите develop ветвь к myfork

    git push myfork develop 
    
  3. Нажмите develop ветви к ветвь называется newbranch на myfork

    git push myfork develop:newbranch 
    
  4. Полный синтаксис с двоеточием также может быть использован для удаления ветви. Это удаляет newbranch из myfork по толкая «ничего» в нее

    git push myfork :newbranch 
    

Я, как правило, используют в основном явные команды с мерзавцем, а не полагаться на какой-то поведение по умолчанию. Всякий раз, когда коллеж застрял на git, в его истории команд обычно бывает git pull или git push, что заставляет меня улыбаться (или вздыхать, если у меня особенно плохое настроение).

Поскольку вы также просят совет, прежде чем настаивать вы можете посмотреть вокруг:

git remote -v 
git fetch remotename 
git branch -a 
Смежные вопросы