Итак, у меня есть git-репозиторий, который я клонировал из вышестоящего источника на ghithub. Я внес в него несколько изменений (которые не зафиксированы и в основной ветке). То, что я хочу сделать, это поместить мои изменения на мою страницу github как новую ветку и заставить github по-прежнему рассматривать ее как ветвь.
Это возможно? Я довольно новичок в Git и GitHub. Мой вопрос вообще имел смысл?
Самый простой способ, который я могу придумать (который, я уверен, является самым окольным путем), - это раскрутить репо на github. Клонируйте его локально в другой каталог. Добавьте исходное репо. Создайте ветку в этом новом разветвленном репо. Скопируйте мои изменения кода вручную в новый локальный репозиторий. А затем отодвинь его обратно в мой github.
Является ли это распространенным случаем использования более простого способа без дублирования каталогов?
Я думаю, что я спрашиваю здесь, в отличие от SO, так как я использую командную строку git для Linux, и люди здесь дают лучшие ответы imo =]
источник
Ответы:
Вы можете сделать все это из своего существующего репозитория (не нужно клонировать ветвь в новый (локальный) репозиторий, создать ветку, скопировать ваши коммиты / изменения и т. Д.).
Подготовьте ваши коммиты к публикации.
Уточните любые существующие локальные коммиты (например, с помощью
git commit --amend
и / илиgit rebase --interactive
).Зафиксируйте любое из ваших незафиксированных изменений, которые вы хотите опубликовать (я не уверен, что вы подразумевали, что у вас есть какие-то коммиты на локальном мастере и некоторые незафиксированные изменения, или просто некоторые незафиксированные изменения; кстати, незафиксированные изменения не «на ветка », они строго в вашем рабочем дереве).
Переименуйте свою основную ветку, чтобы дать ей имя, которое вы хотите для своей «новой ветви». Это не является строго необходимым (вы можете перейти из любой ветви в любую другую), но это, вероятно, уменьшит путаницу в долгосрочной перспективе, если ваша локальная ветвь и ветвь в вашей ветке GitHub имеют одно и то же имя.
Поместите вышестоящий репозиторий GitHub
(например)
github.com:UpstreamOwner/repostory_name.git
как(например)
github.com:YourUser/repository_name.git
.Это делается на веб-сайте GitHub (или «клиенте», который использует API-интерфейсы GitHub), здесь не задействованы локальные команды Git.
В вашем локальном репозитории (тот, который изначально был клонирован из вышестоящего GitHub-репозитория и содержит ваши изменения в его главном ), добавьте ваш репозиторий fork как удаленный:
Вставьте свою ветку в ваш репозиторий на GitHub.
При желании переименуйте пульты, чтобы ваш форк был известен как «origin», а восходящий - «upstream».
Одной из причин переименования удаленных устройств может быть то, что вы хотите иметь возможность использовать
git push
без указания хранилища (по умолчанию это «origin»).источник
-u
опции может заставить вашу локальную веткуmy-feature
отслеживать ту же удаленную веткуorigin/my-feature
. Команда:git push -u github my-feature
Есть инструмент:
hub
Теперь вы можете:
источник