2015-10-19 4 views
2

Обязательно ли передавать репозиторий git перед оформлением заказа? Я слышал, что это так, потому что я могу потерять изменения. Однако, после изменения файла и проверки, я мог бы легко вернуться к моей предыдущей ветке, и я не потерял работу. Файл имеет статус M.Git checkout без совершения

Сообщайте, что here что M означает Слияние (это странно, я думаю, что он уведомляет меня об изменениях).

$ git checkout master 
M README 
Switched to branch 'master' 
$ cat README 
This is the README file. 
This line was added in the working directory while in the test branch. 

Из раздела «Git Checkout Without Committing: WITHOUT A Conflict». Что означает M README?

Спасибо за помощь.

ответ

2

A git checkout не будет обрабатываться, если текущая модификация может быть удалена.

https://git-scm.com/book/en/v2/book/01-introduction/images/areas.png

(изображение из "Getting Started - Git Basics")

example mentioned фактически не использует git checkout -m (и не совершают), что означает модификацию объединяется:

-m 
--merge 

При коммутационные ветви, , если у вас есть локальные модификации o ne или более файлов, которые отличаются между текущей ветвью и веткой, к которой вы переключаетесь, команда отказывается переключать ветви, чтобы сохранить ваши изменения в контексте.

Однако с этой опцией происходит трехстороннее слияние между текущей веткой, содержимым рабочего дерева и новой веткой, и вы будете в новой ветке.

Лучше всего совершить (или копить) текущие изменения перед проверкой, но checkout -m может по крайней мере объединить эти изменения вместо сбоя (или стирать их в случае checkout -f (смотри также «What's the difference between “git reset” and “git checkout”?»).

Что означает M README

То есть в unstaged (и незафиксированных) изменение, работа в прогрессе.
A git checkout -m позволяет эту модификацию быть объединенной в ветке назначения, вместо того чтобы сделать простой git checkout сбой.
См. Также "What’s In The Index? What’s Changed?".

https://git-scm.com/figures/18333fig0201-tn.png

+0

@ user107986, что является идея: добавить конфликт в тестовой ветке перед 'мерзавец контроль -m master': изменение слито, и слияние конфликт показан. – VonC

+0

Удаленный комментарий и положил его в вопрос. – user107986

+0

@ user107986 Я отредактировал ответ соответственно. – VonC

Смежные вопросы