2016-08-07 2 views
1

Я использую Git Bash 2.9.0-64 бит в win7 64bit.Почему я потерял свою ветку мастера после выполнения `git checkout -b 3_1`?

Я создал репозиторий git под названием lec_yaac. Это сопутствующая информация о мастер филиала:

[email protected] MINGW64 /d/Git/lec_yaac (master)

После я выполнил команду git checkout -b 3_1, он изменился

[email protected] MINGW64 /d/Git/lec_yaac (3_1)

И я добавил и commmited некоторые файлы.

Но когда я выполнил git branch, это только показывает,

  • 3_1

Там нет ничего о мастер отрасли.

И git checkout master возвращает

error: pathspec 'master' did not match any file(s) known to git.

+1

Я уже восстановил его, извините за [email protected] –

ответ

1

Нет ничего особенного в ветке master. Это похоже на любую другую ветку. И ветка - это не что иное, как указатель на фиксацию. Итак, отрасль входит в картину, как только вы совершаете фиксацию.

Вы бы получили ветку master, если бы вы сделали это, прежде чем создавать ветку самостоятельно.

То, что вы сделали -
1. Создал репо
2. Создание и перешли на новую ветвь (3_1)
3. Совершенные на 3_1

Что вы должны сделать -
1. Создано репо
2. совершенные то master (название филиала по умолчанию)
3. Создание и перешли на новую ветвь (3_1)
4. Выполнено с 3_1

Если вы все еще хотите использовать ведущую ветвь, просто создайте ее.

git checkout -b master 

Хотя это теперь будет указывать на последний коммит в предыдущей ветке 3_1

2

Когда мы инициализируем пустой GIT репозиторий через git init, Git создает master ветвь. Однако теперь это просто параметр по умолчанию, который указывает на отсутствие фиксации, так как пока нет фиксации. Запустите cat .git/HEAD и выведет ref: refs/heads/master. После git checkout -b 3_1 по умолчанию ref refs/heads/master заменяется на refs/heads/3_1. Когда мы сделаем корневую фиксацию, refs/heads/3_1 укажет на нее.

В другом случае, если мы делаем совершить первый, прежде чем git checkout -b 3_1, мы можем видеть, как master и 3_1 через git branch.