Если у вас уже есть локальная ветка localb и вы хотите настроить ее на слежение за удалённой веткой upstream2/master, то воспользуйтесь параметрами `-u` или `--set-upstream-to` для команды `git branch`, чтобы явно установить отслеживание.
Git не отслеживает перемещение файлов явно. Когда вы переименовываете файл в Git, в нём не сохраняется никаких метаданных, говорящих о том, что файл был переименован. В репозитории фактически удаляется старый файл и создаётся идентичный новый, но с другим именем.
git status показывает что файл переименован, только после того, как вы проиндексируете ваши изменения. git mv автоматически индексирует переименовынный файл.
Подробнее...
это эквивалентно выполнению следующих команд mv 1.txt 2.txt
git rm 1.txt
git add 2.txt
А после git reset head^ индекс чист, поэтому статус показывает так.
Вам поможет команда git reset --soft head^, которая как раз восстанавливает индекс тоже.
И статус уже сразу покажет что файл переименован.
Ключи подхватываются автоматически и не привязаны ни к какой почте. Не очень понятно что пытаешься переключить и зачем. Если надо подписывать коммиты разной почтой в разных репозиториях, то запиши эти параметры непосредственно в репозитории. Не --global, а git config --local user.email...
И какое отношение сайт твоей почтовой системы имеет к подписям коммитов? Ты же можешь туда написать абсолютно любое мыло, хоть gates@microsoft.com. Для это не надо нигде авторизовываться.
А вместо танцев с бубном с ключами, проще работать через https.
Лучше покажи что не получается в самом клонировании.
UnoLagrima, единственное место где в установщике Git спрашивается про VSCode это выбор редактора для сообщений коммитов если работать в терминале. Но это вообще никак не влияет на работу с Git в самом VSCode.
Скорее всего Git не был прописан в PATH и не находился.
Ключи SSH не используются при работе через HTTPS
А ошибка вроде как прямым текстом тебе указана. Либо делай pull перед push, либо затирай внешнюю ветку через push --force
leham1, коммиты видны до тех пор, пока ты не переключишься на реальную ветку. До этого на цепочку указывал HEAD, а потом коммиты станут совсем беcпризорными и пропадут из вида.
Интересно другое, зачем ты переключаешься не на ветку, а на какой-то коммит в середине ветки?
Желтая бирка с восклицательным знаком означает что ты сделал checkout на какой-то отдельный коммит, а не на ветку (вершину ветки). Ты сейчас в состоянии оторванной головы (detached head). Если ты в этом состоянии сделаешь коммиты и не создашь какую-то ветку в этом состоянии, то новые коммиты зависнут в воздухе. Это будет новая беспризорная цепочка коммитов. На неё не будет ссылаться никакая ветка. Мы же знаем, что ветка это указатель на вершину цепочки коммитов. Коммиты не попадут ни в какую ветку и ты их больше никогда не увидишь если переключишься на какую-либо именованную ветку. Сейчас на этот коммит ссылается указатель HEAD — это то состоянии которое ты видишь в своём рабочем каталоге. Переключившись на реальную ветку указатель HEAD тоже станет указывать на другое место и твой коммит потеряется, если он не являются частью какой-либо ветки.
Не очень понятно что такое «пушэить». Английские слова не склоняются, никогда не добавляйте к ним окончания из русских букв, это ошибка. Если очень хочется применить русские правила к слову Push, то и пишите его по-русски — пушить. Но есть нормальный перевод — отправить.
Push не отправляет файлы, он отправляет коммиты с изменениями. И не в ветку, а в вышестоящий репозиторий.
Например команда упомянутая в вопросе отправит новые коммиты из текущей ветки sub в ветку origin/sub и связывает их.
У вас какая-то каша в голове. Лучше ещё раз прочитать какую-нибудь статью по основам работы с системами контроля версий. А ещё лучше учиться на мультиках
Сергей Горностаев, я не нашел ответа на многие вопросы. Можете подсказать?
1) Как переименовать ветку? git branch -M
2) Как переместить кусок одной ветки на другую? git rebase --onto
3) Как откатить ветку на нужное состояние? git reset
4) Как настроить hg без редактирования конфигов руками? git config
5) Почему в TortoriseHG не видно обновлений в рабочем каталоге пока не сделаешь ручной Refresh?
6) Ошибочно добавили в репозиторий файл с паролями или большой двоичный файл. Как удалить? git filter-repo
Предполагается что псевдоним upstream2 вы задали ранее командой
git remote add upstream2 <url>