Инструменты пользователя

Инструменты сайта


vcs:git-cli-faq

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
vcs:git-cli-faq [2017/07/03 14:15]
root
vcs:git-cli-faq [2017/07/03 15:58] (текущий)
root
Строка 1: Строка 1:
 ~~NOTOC~~ ~~NOTOC~~
  
-==== Как переименовать локальную ветку. ====+==== Как переименовать локальную и удаленную ветки. ====
 <cli prompt='​$'>​ <cli prompt='​$'>​
 +$ git branch -a
 +  master
 +* test
 +  remotes/​origin/​master
 +  remotes/​origin/​test
 +  ​
 +$ git branch -m test develop
 +
 +$ git branch -a
 +* develop
 +  master
 +  remotes/​origin/​master
 +  remotes/​origin/​test
 +</​cli>​
 +
 +Собственно удаляем удаленную ветку
 +<​cli>  ​
 +$ git push origin :test
 +To ssh://​git@gitlab.example.com:​2222/​test/​faq.git
 + - [deleted] ​        test
 +</​cli>​
 +
 +Но теперь,​ если мы посмотрим статус,​ то получим подобную ошибку
 +<cli>
 +$ git status
 +On branch staging
 +Your branch is based on '​origin/​test',​ but the upstream is gone.
 +  (use "git branch --unset-upstream"​ to fixup)
 +nothing to commit, working directory clean
 +</​cli>​
 +
 +Поэтому производим указанные рекомендации и заливаем локальную ветку develop
 +<cli>
 +$ git branch --unset-upstream
 +
 +$ git branch -a
 +* develop
 +  master
 +  remotes/​origin/​master
 +  ​
 +$ git push -u origin develop
 +Counting objects: 3, done.
 +Writing objects: 100% (3/3), 259 bytes | 0 bytes/s, done.
 +Total 3 (delta 0), reused 0 (delta 0)
 +remote: ​
 +remote: To create a merge request for develop, visit:
 +remote: ​  ​http://​gitlab.example.com/​test/​faq/​merge_requests/​new?​merge_request%5Bsource_branch%5D=develop
 +remote: ​
 +To ssh://​git@gitlab.example.com:​2222/​test/​faq.git
 + * [new branch] ​     develop -> develop
 +Branch develop set up to track remote branch develop from origin.
 +
 +$ git branch -a
 +* develop
 +  master
 +  remotes/​origin/​develop
 +  remotes/​origin/​master
 +
 +$ git status
 +On branch develop
 +Your branch is up-to-date with '​origin/​develop'​.
 +nothing to commit, working directory clean
 +</​cli>​
 +
 +Единственный нюанс, когда ваши коллеги будут обновлять проект через fetch/pull, то у них останется ссылка на старую ветку test
 +<cli>
 +$ git pull
 +From ssh://​gitlab.example.com:​2222/​test/​faq
 + * [new branch] ​     develop ​   -> origin/​develop
 +Already up-to-date.
 +
 +$ git branch -a
 +* master
 +  remotes/​origin/​HEAD -> origin/​master
 +  remotes/​origin/​develop
 +  remotes/​origin/​master
 +  remotes/​origin/​test
 +</​cli>​
 +
 +Поэтому они должны будут выполнить следующую команду,​ чтобы удалить оставшиеся хвосты
 +<cli>
 +$ git fetch --all --prune
 +Fetching origin
 +From ssh://​gitlab.example.com:​2222/​test/​faq
 + x [deleted] ​        ​(none) ​    -> origin/test
 +
 +$ git branch -a
 +* master
 +  remotes/​origin/​HEAD -> origin/​master
 +  remotes/​origin/​develop
 +  remotes/​origin/​master
 +</​cli> ​
 +
 +
 +==== Как переименовать локальную ветку. ====
 +<cli>
 $ git branch -a $ git branch -a
 * master * master
vcs/git-cli-faq.txt · Последние изменения: 2017/07/03 15:58 — root