Спробуйте це у своєму alice
сховищі (перед натисканням):
git config push.default tracking
Або налаштуйте його за замовчуванням для користувача git config --global …
.
git push
робить за замовчуванням origin
сховище (яке зазвичай є сховищем, з якого ви клонували поточне сховище), але воно не за замовчуванням натискає поточну гілку - вона за замовчуванням надає лише ті гілки, які існують і в вихідному сховищі, і в репозиторії призначення.
push.default
Змінної конфігурації (див ГИТ-конфігурації (1) ) управління , що git push
буде штовхати , коли він не дав ніяких «refspec» аргументи (тобто що - то після імені сховища). Значення за замовчуванням дає поведінку, описану вище.
Ось можливі значення для push.default
:
nothing
Це змушує вас поставити “респект”.
matching
(за замовчуванням)
Це висуває всі гілки, що існують як у вихідному сховищі, так і у сховищі призначення.
Це абсолютно незалежно від галузі, яку зараз перевіряють.
upstream
або tracking
(Обидва значення означають одне і те ж. Пізніше було застаріло, щоб уникнути плутанини з гілками "дистанційного відстеження". Перше було введено в 1.7.4.2, тому вам доведеться використовувати останнє, якщо ви використовуєте Git 1.7.3.1. )
Вони підштовхують поточну гілку до гілки, визначеної її “upstream” конфігурацією.
current
Це підштовхує поточну гілку до однойменної гілки в сховищі призначення.
Ці останні два в кінцевому підсумку однакові для звичайних випадків (наприклад, робота над локальним господарем, який використовує походження / master як вихідний потік), але вони відрізняються, коли місцева гілка має іншу назву від своєї гілки "вище за течією":
git checkout master
# hack, commit, hack, commit
# bug report comes in, we want a fix on master without the above commits
git checkout -b quickfix origin/master # "upstream" is master on origin
# fix, commit
git push
З push.default
рівним upstream
(або tracking
), поштовх буде йти в origin
«s основний гілки. Коли воно дорівнює current
, що штовхає б до origin
«s QuickFix філія.
matching
Установка оновить bare
«s майстер в вашому сценарії , коли він був створений. Щоб встановити його, ви могли використовувати git push origin master
один раз.
Однак upstream
налаштування (а може бути current
) здається, що це може бути краще відповідати тому, що ви очікуєте, що відбудеться, тому ви можете спробувати:
# try it once (in Git 1.7.2 and later)
git -c push.default=upstream push
# configure it for only this repository
git config push.default upstream
# configure it for all repositories that do not override it themselves
git config --global push.default upstream
(Знову ж таки, якщо ви все ще використовуєте Git до 1.7.4.2, вам потрібно буде використовувати tracking
замість upstream
).