почему на git checkout он автоматически добавляет измененные файлы в мою новую ветку - PullRequest
1 голос
/ 20 июня 2019

Мне нужно оформить заказ из одной ветки проекта в другую. Когда я делаю это, он также добавляет все добавленные файлы в измененную ветку. Я не хочу фиксировать эти файлы из этой ветки. Что я должен делать и как мне избежать этого в будущем

A   ui/.gitignore
A   ui/README.md
A   ui/babel.config.js
A   ui/package-lock.json
A   ui/package.json
A   ui/public/favicon.ico
A   ui/public/index.html
A   ui/src/App.vue
A   ui/src/assets/logo.png
A   ui/src/components/HelloWorld.vue
A   ui/src/main.js
Already on 'added_more_notification_channels'

Ответы [ 2 ]

2 голосов
/ 20 июня 2019

Это не так.

Вместо этого Git проще:

  • Вы уже изменили эти файлы.
  • Вы не передайте эти файлы.
  • Следовательно, эти изменения существуют только в вашем рабочем дереве .

Затем вы спросили Git: Пожалуйста, переключитесьот коммита на кончике master до коммита на кончике added_more_notification_channels. (я должен был угадать имя одной ветви, но здесь это не имеет большого значения.)

В некоторых случаях Git скажет: Извините, я не могу этого сделать: если бы я это сделал, я бы уничтожил ваши обновленные файлы, заменив их копиями из коммита на кончике added_more_notification_channels.

В других случаях Git скажет: ОК, я сделал это ... но ВАЖНОЕ ПРИМЕЧАНИЕ: я не уничтожил ваши обновленные файлы, я оставил их в покое.Теперь они не соответствуют коммиту в кончике added_more_notification_channels, точно так же, как они не соответствовали коммиту в кончике master раньше. Если вы намеревались добавить и зафиксировать их в masterТеперь вы можете git checkout master снова вернуться туда, где вы были.Если нет, то вы хороши там, где вы есть, с вашими измененными файлами, которые все еще изменены.

Если вам интересно , почему иногда Git говорит: ОК, я переключилсяветви!(Я взял твои измененные файлы для поездки!) и иногда говорит Ой, простите, я не могу этого сделать!Это уничтожит ваши измененные файлы! , см. Оформление другой ветки, когда в текущей ветке есть незафиксированные изменения .

(На самом деле, похоже, что вы спросили Git: Пожалуйста, переключитесь с added_more_notification_channels на added_more_notification_channels, который вообще не переключается и поэтому всегда работает!)

0 голосов
/ 20 июня 2019

Если у вас add/modify/delete несколько файлов, вы можете получить эти файлы в другой ветке. Поэтому, если вы хотите сначала оформить заказ на другую ветку, вы должны зафиксировать измененные файлы. Тогда вы можете оформить заказ в другой ветке. А если вы не сделаете коммит, вы получите этот файл в ветке оформления заказа. Поэтому вы должны выполнить следующие шаги -

  • Добавить измененные файлы в git
  • Зафиксируйте эти изменения
  • Нажмите при необходимости (необязательно)
  • Оформить заказ в другой ветке
...