Рассмотрим следующую "историю":
$ mkdir my_project
$ cd my_project
$ git init
Initialized empty Git repository in /home/misha/misha/my_project/.git/
$ echo "first line" > hello.txt
$ git add hello.txt
$ git commit -m "first commit"
[master (root-commit) 9c913a1] first commit
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 hello.txt
$ git branch new_feature
$ git checkout new_feature
Switched to branch 'new_feature'
$ echo "second line" >> hello.txt
$ cat hello.txt
first line
second line
$ git checkout master
M hello.txt
Switched to branch 'master'
$ cat hello.txt
first line
second line
Почему hello.txt
имеет две строки в главном ветки? (Я думал, что git checkout
вернет рабочий каталог в предыдущее состояние, т.е. hello.txt
будет иметь только одну строку.)
Что на самом деле происходит за кулисами в рабочем каталоге на git checkout
? Как он обновляется?