LINUX.ORG.RU

Не могу запушить изменения из локальной ветки experimental в удаленную experimental

 ,


0

1

Я нахожусь в ветке experimental. Нужно последний коммит запушить на удаленный репозитарий в ветку с таким же названием (такая удаленная ветка уже есть на уаделенном сервере).

Вот состояние репозитария, вроде все нормально:

$ git branch
* experimental
  findInNameItem
- Да, все правильно, я делал изменения в experimental.
$ git status
На ветке experimental
Ваша ветка опережает «findInNameItem» на 1 коммит.
  (используйте «git push», чтобы опубликовать ваши локальные коммиты)
нечего коммитить, нет изменений в рабочем каталоге
- Ну и пусть опережает, ведь я делал изменения в experimental. Мне эта findInNameItem уже и не нужна, разберусь как пушить и потом удалю её.
$ git log -n 1
commit 6294693eb903970add1c4944b662e93986a8a754
Author: xintrea <xintrea@gmail.com>
Date:   Mon Jan 8 15:33:56 2018 +0300

    Изменен номер версии на 1.42.8
- Да, у меня просто один коммит с изменениями в ветке experimental.

Пытаюсь запушить:
$ git push
fatal: Имя вышестоящей ветки и вашей текущей ветки различаются. Чтобы отправить изменения в вышестоящую ветку на внешнем репозитории, используйте:

    git push . HEAD:findInNameItem

Чтобы отправить изменения в ветку с таким же именем на внешнем репозитории, используйте:

    git push . experimental

Чтобы выбрать любую из опций на постоянной основе, смотрите push.default в «git help config».

«Имя вышестоящей ветки и вашей текущей ветки различаются.» - вот это я не пойму. У меня в удаленном репозитарии куча веток. Что значит «Вышестоящая ветка»? Непонятно...

Может быть, с веткми на удаленном репозитарии что-то не так? Да вроде все нормально:
$ git branch --remotes
  origin/HEAD -> origin/experimental
  origin/attachFiles
  origin/consoleOption
  origin/editorModification
  origin/experimental
  origin/importExportBranch
  origin/master
  origin/textCleaner
  origin/tryCacheDom
  origin/useRecordTableController

Ну ладно, попробую прямой командой из локального experimental в удаленный experimental засунуть, как мне подсказывает git:
$ git push . experimental
Everything up-to-date


Ничего не произошло. И на удаленном репозитарии никаких изменений не видно.

Что-то я вообще не пойму, как в Git сделать протейшее действие - залить изменения из локальной ветки в удаленную.

★★★★★

Так ты в свой же локальный репоизторий пушишь (.) вместо origin

Что-то я вообще не пойму, как в Git сделать протейшее действие

Почитать немного ман или какой-нибудь туториал по простейшим действиям

annulen ★★★★★ ()
Ответ на: комментарий от annulen

Так ты в свой же локальный репоизторий пушишь (.) вместо origin

Так мне же сам Git и написал:

Чтобы отправить изменения в ветку с таким же именем на внешнем репозитории, используйте:

git push . experimental



Это правильно написано, или тут ошибка?

Xintrea ★★★★★ ()
Ответ на: комментарий от Xintrea

Вангую что у тебя репозиторий криво склонирован, или что-то напортачено с апстримом ветки experimental. В студию требуется .git/config

annulen ★★★★★ ()
Ответ на: комментарий от Xintrea

Кстати, если апстрим настроен правильно, имя удаленной и локальной ветки одинаковое, и версия git >= 2.0, то команда сокращается до просто «git push»

annulen ★★★★★ ()
Ответ на: комментарий от annulen
[core]
	repositoryformatversion = 0
	filemode = true
	bare = false
	logallrefupdates = true
[remote "origin"]
	url = git@github.com:xintrea/mytetra_dev.git
	fetch = +refs/heads/*:refs/remotes/origin/*
[branch "experimental"]
	remote = .
	merge = refs/heads/findInNameItem
[branch "findInNameItem"]
	remote = origin
	merge = refs/heads/findInNameItem
[pull]
	rebase = true



Да, тут что-то для experimental ненормально. А я всего-то до этого делал мердж из findInNameItem в experimental. Но конфиг не трогал, просто дел все по аналогии с вот этой памяткой:

https://webhamster.ru/mytetrashare/index/mtb0/134280976888pje7z82w

Вообще меня эта опция merge в двух местах напрягает. Как правильно должно быть?

Xintrea ★★★★★ ()
Ответ на: комментарий от Xintrea

Должно быть

...
[branch "experimental"]
	remote = origin
	merge = refs/heads/experimental
[branch "findInNameItem"]
	remote = origin
	merge = refs/heads/findInNameItem
...

Ты что-то нехорошее сделал с experimental, или изначально неправильно создал

annulen ★★★★★ ()
Последнее исправление: annulen (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.