Git: Как синхронизировать c рабочий каталог с указанным c коммитом ветки - PullRequest
0 голосов
/ 01 апреля 2020

Я преобразовал весь svn-репозиторий в GIT после this

У меня есть полный git репозиторий с тегами, ветками и одним мастером

( давайте назовем теги: tag1, tag2, tag3, ... и ветви: branch1, branch2, branch3, ...)

Теперь я добавил файлы (назовите их: file1, file2, file3, ...) и передал их мастеру (я вижу их в моем рабочем каталоге)

Для команды:

git branch

результаты:

  • master
  • svn / branch1
  • svn / branch2
  • svn / branch3

А если я сделаю:

name@pc MINGW64 /path2GitRepo (master)
$ git checkout "svn/branch1"

результат будет:

warning: refname 'svn/branch1' is ambiguous.
Switched to branch 'svn/branch1'
name@pc MINGW64 /path2GitRepo (svn/branch1)

Но файлы (file1, file2, file3, ...) все еще находятся в моем рабочем каталоге. Как это возможно, я передал файлы мастеру, а не ветке 1?

Какой будет команда для перевода моего рабочего каталога в состояние определенного c коммита ветви?

Я даже удалил все (кроме папки. git) из своего рабочего каталога и сделал:

git checkout-index -f -a

, но файлы все еще там.

Редактировать: Вывод git show-ref:

2a1a9713eaedd9bc70f97568eae02752030515a9 refs/heads/master
8215eaf2d6049fc5f7375b0e7605af040860b4c8 refs/heads/svn/branch1
2a1a9713eaedd9bc70f97568eae02752030515a9 refs/heads/svn/branch2
a0886a261d934447ab089ad96a2838470176557c refs/heads/svn/branch3
fddda103d8fe4be3ba7cb929ec28cff0349b799d ...
8215eaf2d6049fc5f7375b0e7605af040860b4c8 refs/remotes/svn/branch1
a0886a261d934447ab089ad96a2838470176557c refs/remotes/svn/branch2
fddda103d8fe4be3ba7cb929ec28cff0349b799d refs/remotes/svn/branch3
2d3f16582b9bfba5ce491966624f31d59b417d03 ...
28fbcfcc64be5fcf0f7ea8e3e492ffee8a090e5c refs/tags/tag1
a68aeb93ea1a315323dc0ba2cd1d7d209469d33a refs/tags/tag2
56da5a8dcbef8b51ee748a2778e631e64ff69bda refs/tags/tag3
c3f879fdd5b401ced39135bd9d281d48f1dcc945 ...

Ответы [ 2 ]

1 голос
/ 01 апреля 2020

Пожалуйста, удалите двойные кавычки вокруг названия ветви:

git checkout branch1

Я не знаю, являются ли двойные кавычки обязательно неправильными, но обычно, если вы хотите извлечь название ветви, которое требует экранирования, вы бы вместо этого используйте:

git checkout -- branch1
0 голосов
/ 01 апреля 2020

Из вывода show-ref похоже, что ваше имя ветки svn/branch1

Возможно, это не должно показывать никаких предупреждений:

git checkout "svn/branch1"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...