Я просто перейменував свою місцеву філію за допомогою
git branch -m oldname newname
але це лише перейменовує локальну версію гілки. Як я можу перейменувати цю на GitHub?
Я просто перейменував свою місцеву філію за допомогою
git branch -m oldname newname
але це лише перейменовує локальну версію гілки. Як я можу перейменувати цю на GitHub?
Відповіді:
Як уже згадувалося, видаліть старий на Github & re-push, хоча використовувані команди трохи більше деталізовані, ніж потрібно:
git push origin :name_of_the_old_branch_on_github
git push origin new_name_of_the_branch_that_is_local
Простий. Трохи розбираючи команди, команда git push по суті:
git push <remote> <local_branch>:<remote_branch>
Тому поштовх без вказаного local_branch по суті означає "не брати нічого з мого локального сховища, і зробити це віддаленою гілкою". Я завжди думав, що це зовсім нерозумно, але це так, як це робиться.
Редагувати: Станом на Git 1.7 є альтернативний синтаксис для видалення віддаленої гілки:
git push origin --delete name_of_the_remote_branch
Редагувати: Як згадує @ void.pointer у коментарях
Зауважте, що ви можете комбінувати 2 натискання:
git push origin :old_branch new_branch
Це одночасно видалить стару гілку і висуне нову.
Це можна перетворити на простий псевдонім, який бере аргументи віддаленої, оригінальної гілки та нової назви гілки ~/.gitconfig
:
[alias]
branchm = "!git branch -m $2 $3 && git push $1 :$2 $3 -u #"
Використання:
git branchm origin old_branch new_branch
Зауважте, що позиційні аргументи в командах оболонки були проблематичними для старих (до 2.8?) Версій git, тому псевдонім може змінюватися залежно від версії git. Детальну інформацію див. У цій дискусії .
git push origin :old_branch new_branch
. Це одночасно видалить стару гілку і висуне нову.
git branch -m new_branch
(перейменуйте old_branch на new_branch) 2. git commit -m 'msg'
, 3. git push
4. Ммм, old_branch з'являється в Github, Google, і я привожу до вашої відповіді 5. git push origin :old_branch
(каже, що видалено) 6. git push origin new_branch
... завершує потім каже * [new branch] new_branch -> old_branch
. Поверніться до Github і old_branch
знову з’явиться. Якщо я видаляю в веб-інтерфейсі Github, у мене є можливість "Відновити", тому здається, що натискання new_branch просто відновлює.
Наступні команди працювали на мене:
git push origin :old-name-of-branch-on-github
git branch -m old-name-of-branch-on-github new-name-for-branch-you-want
git push origin new-name-for-branch-you-want
Я знайшов 3 команди, як можна змінити назву гілки git, і ці команди - це швидший спосіб зробити це
git branch -m old_branch new_branch # Rename branch locally
git push origin :old_branch # Delete the old branch
git push --set-upstream origin new_branch # Push the new branch, set local branch to track the new remote
Якщо вам потрібно покроково, ви можете прочитати цю чудову статтю
git push --set-upstream
є найважливішою частиною, якщо вам трапиться змінити ім'я філії локально за допомогою програми github перед видаленням віддаленої гілки.
Просто видаліть стару гілку і створіть нову.
Приклад (виключно перейменування віддаленої гілки):
git push origin :refs/heads/oldname
git push origin newname:refs/heads/newname
Вам також, ймовірно, слід перейменувати місцеву гілку та змінити параметри того, куди натискати / тягнути.
git push origin newname:refs/heads/newname
? master та newname можуть не вказувати на одне й те саме.
1. Перейменуйте місцеве відділення.
Якщо ви знаходитесь у відділенні, ви хочете перейменувати:
git branch -m new-name
Якщо ви перебуваєте в іншій галузі:
git branch -m old-name new-name
2. Видаліть віддалену гілку старої назви та натисніть нову локальну гілку.
git push origin :old-name new-name
3. Скиньте гілку вище за течією для нової локальної гілки.
Перейдіть на відділення, а потім:
git push origin -u new-name
Тож висновок такий
git branch -m new-name
git push origin :old-name new-name
git push origin -u new-name
git branch -m new-name && git push origin :master new-name
. Це не вдасться. Якщо ця відповідь стосується лише git, а не github, то це питання є дублікатом кількох інших питань і його слід закрити. Якщо мова йде дійсно про github, то відповідь має стосуватися github. Ця відповідь не відповідає.
Це можна зробити без терміналу, просто потрібно створити гілку з новою назвою та видалити стару після. Ви можете використовувати цю публікацію для цього.
У цій статті показано, як зробити це по-справжньому легко.
1. Для перейменування локальної гілки Git ми можемо використовувати команду Git -m для зміни імені:
git branch -m feature1 feature2
2. Якщо ви просто шукаєте команду для перейменування віддаленої гілки Git, це це "
git push -u origin feature2:feature3
Перевірте, чи немає у вас теги на гілці, перш ніж це зробити. Ви можете зробити це за допомогою git tag
.
Ще один спосіб - перейменувати такі файли :
.git/refs/head/[branch-name]
в.git/refs/head/new-branch-name
.git/refs/remotes/[all-remote-names]/[branch-name]
в.git/refs/remotes/[all-remote-names]/new-branch-name
Перейменуйте голову та пульти як на вашому локальному ПК, так і на походженнях / віддалених серверах
Якщо ваша поточна назва гілки містить слэш ( /
), git створить каталоги на зразок:
поточна назва філії: "awe/some/branch"
.git/refs/head/awe/some/branch
.git/refs/remotes/[all-remote-names]/awe/some/branch
назва філії бажання: "new-branch-name"
branch
файл з.git/refs/*/awe/some/
.git/refs/head/
.branch
файл з усіх.git/refs/remotes/*/awe/some/
.git/refs/remotes/*/
.branch
файли в new-branch-name
..git/refs/head/new-branch-name
.git/refs/remotes/[all-remote-names]/new-branch-name
awe/some/branch
на new-branch-name
місцеве (місцеве та віддалене!)Інформація: Цей спосіб може бути не найкращим, але він все ще працює для людей, які можуть мати проблеми з іншими способами
У моєму випадку мені потрібна була додаткова команда,
щоб отримати свою перейменовану гілку, щоб підключитись .
git branch --unset-upstream
origin newname
(Для зручності введення тексту), я спочатку git checkout oldname
.
Потім запустіть наступне:
git branch -m newname
git push origin :oldname
або абоgit push origin --delete oldname
git branch --unset-upstream
git push -u origin newname
git push origin newname
Цей додатковий крок може бути необхідний лише тому, що я (як правило) налаштовую віддалене відстеження на своїх гілках через . Таким чином, коли я перевірив, згодом мені потрібен лише тип, а неgit push
-u
origin oldname
oldname
git push
git push origin oldname
Якщо я НЕ використовую команду git branch --unset-upstream
раніше git push origin newbranch
, git відновлює oldbranch
і натискає newbranch
на origin oldbranch
- перемагаючи мій намір.
Наступні команди перейменують гілку локально, видаляють стару гілку на віддаленому місці та натискають нову гілку, встановлюючи локальну гілку для відстеження нового віддаленого:
git branch -m old_branch new_branch
git push origin :old_branch
git push --set-upstream origin new_branch
Просто так . Щоб локально перейменувати гілку git та віддалено використовувати цей фрагмент (перевірено та працює як шарм):
git branch -m <oldBranchName> <newBranchName>
git push origin :<oldBranchName>
git push --set-upstream origin <newBranchName>
Пояснення:
Перейменуйте крок:
Довідка на Git: з опцією -m або -M буде перейменовано на. Якщо був відповідний рефлог, він перейменовується на збіг, і створюється запис рефлогу, щоб запам'ятати перейменування гілки. Якщо існує, -M необхідно використовувати, щоб змусити відбутися перейменування.
Крок видалення:
Посилання на Git: походження git push: експериментальне Знайдіть ref, що відповідає експериментальному у сховищі початкових даних (наприклад, refs / heads / експериментальний) та видаліть його.
Оновлення на віддаленому кроці РЕПО (попередня посилання для відстеження):
Посилання на Git: --set-upstream Для кожної гілки, яка є оновленою або успішно висунутою, додайте посилання висхідної (відстежуючої) інформації, використовувану без аргументів git-pull [1] та інших команд. Для отримання додаткової інформації дивіться відділення..merge в git-config [1].
git push origin head
git гілка -m стара-гілка-ім’я нова-гілка-ім’я
git push origin head
На гілці git запустити гілку гілки -m old_name new_name Це дозволить змінити ім'я гілки у вашому локальному джерелі push gpo repo: old_name new_name Це дозволить натиснути змінене ім'я на віддалене і видалити старе відділення git push origin -u new_name Встановити локальну гілку для відстеження віддалене відділення. Це вирішує питання