Github додає сховище як вилку з існуючого клону


21

Тож у мене є сховище git, яке я клонував із вихідного джерела на ghithub. Я вніс до нього кілька змін (які не ввійшли і в головній галузі). Що я хочу зробити, - це натиснути зміни на мою сторінку github як нову гілку, і Github все ще бачить це як вилку.

Це можливо? Я досить новачок у git та github. Чи моє запитання навіть мало сенс?

Найпростіший спосіб, про який я можу придумати (що, я впевнений, це найбільш обхідний спосіб), - це розпалити репо на github. Клоніруйте його локально в інший каталог. Додайте репо-вихідне походження за течією. Створіть гілку в новому роздвоєному репо. Скопіюйте зміни мого коду вручну в нове місцеве репо. А потім відсуньте її назад до мого github.

Це звичайний випадок використання, що існує простіший спосіб зробити це без копіювання каталогів?

Я думаю, що я прошу тут, на відміну від ТА, оскільки я працюю в Linux за допомогою git командного рядка, і люди тут дають кращі відповіді imo =]


Я думаю, що це технічно на тему, але це може бути краще в інших місцях, оскільки, здається, це здебільшого питання про github
Michael Mrozek

Відповіді:


22

Ви можете зробити це все з вашого наявного сховища (не потрібно клонувати виделку в нове (локальне) сховище, створити свою філію, скопіювати свої комітети / зміни тощо).

  1. Підготуйте свої публікації до публікації.

    Уточнити будь-які існуючі локальні комісії (наприклад, з git commit --amendта / або git rebase --interactive).

    Внесіть будь-які ваші незапрошені зміни, які ви хочете опублікувати (я не впевнений, якщо ви мали на увазі, що ви маєте деякі зобов’язання щодо свого місцевого майстра, а також якісь невідомі зміни, або лише якісь невідомі зміни; до речі, невідомі зміни не "на гілка », вони строго у вашому робочому дереві).

    Перейменуйте свою головну гілку, щоб дати їй ім’я, яке ви хочете для вашої «нової гілки». Це не є суворо необхідним (ви можете натиснути з будь-якої гілки на будь-яку іншу гілку), але це, ймовірно, зменшить плутанину в перспективі, якщо ваша локальна філія та гілка у вашій вилці GitHub мають однакову назву.

    git branch -m master my-feature
    
  2. Виділіть сховище GitHub вгору
    (наприклад) github.com:UpstreamOwner/repostory_name.gitяк
    (наприклад) github.com:YourUser/repository_name.git.

    Це робиться на веб-сайті GitHub (або у «клієнта», який використовує API GitHub), тут немає ніяких локальних команд Git.

  3. У вашому локальному сховищі (той, який був спочатку клонований з висхідного сховища GitHub і має зміни у своєму майстрі ), додайте ваше сховище виделки як віддалене:

    git remote add -f github github.com:YourUser/repository_name.git
    
  4. Натисніть свою гілку до вашого сховища виделок на GitHub.

    git push github my-feature
    
  5. За бажанням перейменуйте пульти, щоб ваша вилка була відома як "вихід", а вища - як "вище".

    git remote rename origin upstream
    git remote rename github origin
    

    Однією з причин перейменування віддалених програм було б тому, що ви хочете мати можливість користуватися, git pushне вказуючи сховище (воно за замовчуванням має значення "походження").


Працювали бездоганно, але коли ви створюєте пульт github, я думаю, що вам не вистачає "https: //" в URL-адресі Github
jesjimher

1
@jesjimher: "URL-адреси" в цій публікації використовують "scp-like синтаксис", який використовує SSH, а не HTTP (S). Вам також знадобиться змінити двокрапку на косу рису, щоб використовувати їх як URL-адреси HTTP (S) (за умови, що сервер підтримує обидва без додаткових змін простору імен, що робить GitHub).
Кріс Джонсен

На жаль, ви маєте рацію, Кріс, я помилково вписав товсту кишку як косу рису, і, таким чином, мені це не вийшло, якщо я не додав "https". Вибачте за шум ...
jesjimher

На кроці 4 за допомогою -uпараметра можна зробити ваш локальний відділення my-feature відстеження тієї ж віддаленої гілки origin/my-feature. Команда така:git push -u github my-feature
YaOzI

Це чудово. Єдине, що мені довелося змінити, це адреса github!
Тіко

0

Є інструмент: hub

hubце інструмент командного рядка, який завершує роботу gitз додатковими функціями та командами, що полегшує роботу з GitHub

Тепер ти можеш:

# cd to a cloned repo with uncommited changes
git checkout -b feature
git commit -am 'done with feature'
git fork
git push YOUR_USER feature
# git pull-request
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.