Ответ 1
Создайте новую ветку с помощью git checkout -b BRANCH_NAME
Затем нажмите новую ветку на удаленную: git push origin BRANCH_NAME
Я на отдельной голове и сделал некоторые изменения. Я хочу подтолкнуть их к этой отсоединенной голове с помощью git. Я не хочу, чтобы мои изменения шли на ветку разработки и, конечно же, не на ведущую ветку. Я работаю над файлом с другим человеком.
Примеры ветвей
develop
master
*(HEAD detached at origin/49792_testMocha)
Как я вдавливаю в голову, не влияя на развитие или мастер?
Создайте новую ветку с помощью git checkout -b BRANCH_NAME
Затем нажмите новую ветку на удаленную: git push origin BRANCH_NAME
Если вы находитесь на отдельной голове и хотите нажать на удаленную ветку
git push origin HEAD:name-of-your-branch
в противном случае вы можете создать новую ветку и нажать на нее (она будет создана автоматически)
git branch new-branch-name
git push -u origin new-branch-name
В то время как все ответы здесь как бы отвечают на первоначальный вопрос (как протолкнуть отдельную голову, не затрагивая другие ветки), все предлагают создать новую ветку.
Здесь показано, как перейти к новой удаленной ветки без создания новой локальной ветки.
Я даю тебе:
git checkout --detach # (or anything else that leaves you with a detached HEAD - guillotine anyone?)
[change stuff & commit]
git push origin HEAD:refs/heads/my-new-branch
Замените origin
соответствующим удаленным именем (к которому у вас есть доступ для записи), а my-new-branch
любым другим, как вы хотите, чтобы вызывалась новая ветвь.
Ваши коммиты на HEAD
будут перенесены в новую ветку с именем my-new-branch
.
Тада! 🎉
git checkout
git checkout <commit_id>
git checkout -b <new branch> <commit_id>
git checkout HEAD~X // x is the number of commits t go back
Это проверит новую ветвь, указывающую на требуемую фиксацию.
Эта команда проверит чек на коммит.
На этом этапе вы можете создать ветку и начать работу с этой точки.
# Checkout a given commit.
# Doing so will result in a `detached HEAD` which mean that the `HEAD`
# is not pointing to the latest so you will need to checkout branch
#in order to be able to update the code.
git checkout <commit-id>
# create a new branch forked to the given commit
git checkout -b <branch name>
Примечание: создание веток перед нажатием тем более рекомендуется, чтобы git 2.11 или менее использовался для segfault!
Это не будет иметь место с Git 2. 12+ (первый квартал 2017 года)
См. Коммит b10731f (07 января 2017 г.) Кайла Мейера (kyleam
).
(Объединено с Junio C Hamano - gitster
- в коммите b85f79c, 18 января 2017 г.)
branch_get_push
: неbranch_get_push
segfault, когда HEAD отсоединен"
git <cmd> @{push}
" на отдельном HEAD, используемом для сегментации; это было исправлено до ошибки с сообщением.
Ошибка теперь будет:
HEAD does not point to a branch
С Git 2.12 или более, вы можете затем переместить отсоединенный HEAD в удаленную ветвь, как показано в ответе Мэтта.
Создайте новую ветвь для этого коммита и git checkout -b <branch-name> <commit-hash>
его: git checkout -b <branch-name> <commit-hash>
. Теперь вы можете отправить свои изменения в новую ветку: git push origin <branch-name>
Если вам нужно очистить другую ветку от оставшихся git reset --hard <branch-name>
обязательно запустите git reset --hard <branch-name>
.
Вот статья, которая объясняет, как работает ветвление и отсоединенная головка.