git: проверка филиала с незафиксированными ошибками ошибок только * некоторые * файлы [дубликаты]

Ну, у Process Explorer есть опция suspend. Вы можете щелкнуть правой кнопкой мыши процесс в столбце процесса и выбрать приостановить. Когда вы будете готовы возобновить его снова, щелкните правой кнопкой мыши и на этот раз выберите резюме. Проводник процесса можно получить здесь:

http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx

218
задан Lii 27 August 2017 в 11:20
поделиться

3 ответа

204
ответ дан torek 16 August 2018 в 00:58
поделиться

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

Пример:

$ echo 'hello world' > file.txt
$ git add file.txt
$ git commit -m "adding file.txt"

$ git checkout -b experiment
$ echo 'goodbye world' >> file.txt
$ git add file.txt
$ git commit -m "added text"
     # experiment now contains changes that master doesn't have
     # any future changes to this file will keep you from changing branches
     # until the changes are stashed or committed

$ echo "and we're back" >> file.txt  # making additional changes
$ git checkout master
error: Your local changes to the following files would be overwritten by checkout:
    file.txt
Please, commit your changes or stash them before you can switch branches.
Aborting

Это относится к не отслеживаемые файлы, а также отслеживаемые файлы. Вот пример для файла без следа.

Пример:

$ git checkout -b experimental  # creates new branch 'experimental'
$ echo 'hello world' > file.txt
$ git add file.txt
$ git commit -m "added file.txt"

$ git checkout master # master does not have file.txt
$ echo 'goodbye world' > file.txt
$ git checkout experimental
error: The following untracked working tree files would be overwritten by checkout:
    file.txt
Please move or remove them before you can switch branches.
Aborting

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

$ echo 'experimental change' >> file.txt # change to existing tracked file
   # I want to save these, but not on master

$ git checkout -b experiment
M       file.txt
Switched to branch 'experiment'
$ git add file.txt
$ git commit -m "possible modification for file.txt"
6
ответ дан Gordolio 16 August 2018 в 00:58
поделиться
  • 1
    На самом деле я все еще не совсем понимаю. В первом примере, после того, как вы добавили & quot; и мы вернулись & quot ;, он говорит, что локальное изменение будет перезаписано, что локальное изменение точно? & quot; и мы вернулись & quot ;? Почему git просто не переносит это изменение в master, так что в master файл содержит «hello world». и "и мы вернулись" – Xufeng 27 February 2014 в 00:46
  • 2
    В первом примере у мастера есть только «привет мир». эксперимент имеет «мир приветствия\ngoodbye world». Для изменения ветки необходимо изменить файл .txt, проблема в том, что есть незафиксированные изменения «hello world\ngoodbye world\nand we back». – Gordolio 27 February 2014 в 00:55

У вас есть два варианта: запишите свои изменения:

git stash

, а затем, чтобы вернуть их:

git stash apply

или поместить свои изменения в ветку, чтобы вы могли получить удаленной ветви, а затем объединить изменения на ней. Это одна из самых больших вещей в git: вы можете сделать ветку, зафиксировать ее, а затем внести другие изменения в ветку, в которой вы были.

Вы говорите, что это не имеет никакого смысла, но вы только делают это, чтобы вы могли объединить их по своему усмотрению после выполнения тяги. Очевидно, ваш другой выбор состоит в том, чтобы зафиксировать на своей копии ветки, а затем сделать тягу. Презумпция заключается в том, что вы либо не хотите этого делать (в этом случае я озадачен тем, что вам не нужна ветка), либо вы боитесь конфликтов.

37
ответ дан Rob 16 August 2018 в 00:58
поделиться
  • 1
    Не правильная команда git stash apply? здесь документы. – Thomas8 3 December 2015 в 22:14
  • 2
    Только то, что я искал, временно переключиться на разные ветви, посмотреть что-то и вернуться к тому же состоянию отрасли, над которой я работаю. Спасибо, Роб! – Naishta 3 November 2016 в 22:22
  • 3
    Да, это правильный способ сделать это. Я ценю детали в принятом ответе, но это делает вещи сложнее, чем они должны быть. – Michael Leonard 18 January 2017 в 23:54
  • 4
    Кроме того, если вам не нужно сохранять кошелек, вы можете использовать git stash pop, и он удалит брошюру из вашего списка, если она успешно применяется. – Michael Leonard 18 January 2017 в 23:55
Другие вопросы по тегам:

Похожие вопросы: