Пытался использовать то, что here, но это не решает вещей для меня.Как остановить нажатие на несколько удаленных ветвей в git? (aka, Как отключить удаленные ветви git?)
У меня есть местное репо в git, клонированное из удаленного репо, development
. Я разворачиваю локально, чтобы поиграть с новой функцией в ветке с именем newBranchName
и позвонить git push origin newBranchName
, чтобы настроить новую ветку на удаленном репо.
Теперь, когда я пытаюсь нажать, git, похоже, толкает мою ветку newBranchName
во все, что отслеживает и ветка старой ветви. Я хочу, чтобы это остановилось.
Вот расширенный образец того, что я имею в виду. Я собираюсь создать локальную ветвь, добавить файл, зафиксировать локально, а затем нажать на новую ветку на удаленном сервере. Все идет нормально.
[email protected] /path/to/working/dir (oldBranch)
$ git branch testingStuff
[email protected] /path/to/working/dir (oldBranch)
$ git checkout testingStuff
Switched to branch 'testingStuff'
[email protected] /path/to/working/dir (testingStuff)
$ vim test.txt
[email protected] /path/to/working/dir (testingStuff)
$ git add test.txt
[email protected] /path/to/working/dir (testingStuff)
$ git commit -a
[testingStuff 11468d8] Testing git; can trash this branch.
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 test.txt
[email protected] /path/to/working/dir (testingStuff)
$ git push origin testingStuff
Counting objects: 4, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 299 bytes, done.
Total 3 (delta 1), reused 0 (delta 0)
To http://url/to/remote/repo.git
* [new branch] testingStuff -> testingStuff
Теперь, я отредактирую файл test.txt, зафиксирую изменение и нажмите. Это меня смущает.
[email protected] /path/to/working/dir (testingStuff)
$ vim test.txt
[email protected] /path/to/working/dir (testingStuff)
$ git commit -a
[testingStuff 2be7063] more testing git
1 files changed, 1 insertions(+), 0 deletions(-)
[email protected] /path/to/working/dir (testingStuff)
$ git push
Counting objects: 5, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 276 bytes, done.
Total 3 (delta 1), reused 0 (delta 0)
To http://url/to/remote/repo.git
11468d8..2be7063 testingStuff -> testingStuff
! [rejected] oldBranch -> remoteTrackedByOldBranch (non-fast-forward)
error: failed to push some refs to 'http://url/to/remote/repo.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again. See the
'Note about fast-forwards' section of 'git push --help' for details.
Я хочу продолжить нажатием на testingStuff
удаленно, но хотят, чтобы остановить нажатием на remoteTrackedByOldBranch
, когда я печатаю git push
. Я не хочу удалять какую-либо ветку - кажется, ряд ответов на подобные вопросы предполагает удаление, а не отсутствие слежения. Я также не хочу знать, как нажать на конкретную ветвь, только явно называя ее в команде git push. Слишком много ошибок памяти с мышцами. Я хочу git push
, чтобы нажать только на origin/testingStuff
.
Я уже несговорчиво (слово, которое доказывает сам) убил мой .git/config, пытаясь выполнить это, и он все еще нажимает remoteTrackedByOldBranch
.
EDIT: Вот что мой .git/конфигурационный файл выглядит как после выполнения выше:
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
hideDotFiles = dotGitOnly
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = http://url/to/remote/repo.git
[branch "master"]
remote = origin
merge = refs/heads/master
[branch "oldBranch"]
remote = origin
merge = refs/heads/oldBranch
ничего о testingStuff
отрасли в там.
РЕДАКТИРОВАТЬ:git branch -avv
выхода:
[email protected] /path/to/working/dir (testingStuff)
$ git branch -avv
master 721aa61 initial setup
projectFork1 e132f5f Fixed Construction grid labels getting sliced.
projectFork2 1d20317 initial load
oldBranch 1d20317 initial load
* testingStuff 192f622 Still testing
remotes/origin/HEAD -> origin/master
remotes/origin/empty ec1c694 initial setup
remotes/origin/joeUserFork1 771f43e Initial Load
remotes/origin/master 721aa61 initial setup
remotes/origin/projectFork1 e132f5f Fixed Construction grid labels getting sliced.
remotes/origin/oldBranch 1d20317 initial load
remotes/origin/joeUserFork2 dc605e8 What was sent initially.
remotes/origin/testingStuff 192f622 Still testing
remotes/origin/upload_master 0d8c440 Initial Load
Ну, это странная часть. В config у меня есть '[branch master]' и (в приведенном выше сценарии), '[branch oldBranch]', но ничего для 'testStuff', моя новая ветка. Я предполагаю, что ваш 'develop' должен представлять' testStuff' в моем сценарии выше. У меня нет 'rebase = true' там, но я предполагаю, что это просто особенность вашего рабочего процесса. Я вложу свой конфиг в свой вопрос. – ruffin
'$ git config set push.default upstream' дает ' error: key не содержит раздел: set'. Я буду Google вокруг. – ruffin
«set» был ошибкой - я предполагаю, что вы сразу нашли, например. [this] (http://help.github.com/set-your-user-name-email-and-github-token/) – AD7six