Лучший вариант
Вероятно, самый чистый, наименее запутанный и безопасный способ проникновения в удаленный репозиторий без обнажений - это переход к выделенным веткам на удаленном устройстве, которые представляют ветви вашего ноутбука.
Давайте рассмотрим простейший случай и предположим, что в каждом репо есть только одна ветвь: master. Когда вы нажимаете на удаленное репо с вашего ноутбука, вместо нажатия master -> master, push master -> laptop-master (или аналогичное имя). Таким образом, push не влияет на текущую извлеченную главную ветку в удаленном репо. Чтобы сделать это с ноутбука, команда довольно проста:
git push origin master:laptop-master
Это означает, что локальная главная ветвь будет помещена в ветку с именем «ноутбук-мастер» в удаленном хранилище. В вашем удаленном репо у вас будет новая ветвь с именем «ноутбук-мастер», которую вы сможете объединить с вашим удаленным мастером, когда будете готовы.
Альтернативный вариант
Также возможно просто нажать master -> master, но обычно не рекомендуется отправка в текущую извлеченную ветвь непроигранного репо, потому что это может сбить с толку, если вы не понимаете, что происходит. Это связано с тем, что отправка в извлеченную ветвь не обновляет рабочее дерево, поэтому проверка git status
в извлеченной ветке, в которую была вставлена, покажет в точности противоположные отличия от того, что было добавлено совсем недавно. Было бы особенно запутанно, если бы дерево работ было грязным до того, как был сделан пуш, что является большой причиной, почему это не рекомендуется.
Если вы хотите попробовать нажать master -> master, то команда будет просто:
git push origin
Но когда вы вернетесь к удаленному репо, вам, скорее всего, понадобится выполнить git reset --hard HEAD
синхронизацию рабочего дерева с загруженным контентом. Это может быть опасно , потому что, если в удаленном рабочем дереве есть какие-то незафиксированные изменения, которые вы хотели бы сохранить, оно уничтожит их. Убедитесь, что вы знаете, каковы последствия этого, прежде чем попробовать, или, по крайней мере, сначала сделайте резервную копию!
РЕДАКТИРОВАНИЕ Начиная с Git 2.3, вы можете использовать «push-to-deploy» git push: https://github.com/blog/1957-git-2-3-has-been-released . Но лучше перейти к отдельной ветви, а затем к слиянию, поскольку оно выполняет фактическое слияние (следовательно, работает с незафиксированными изменениями, как слияние).