Git Revert Сообщение об ошибке? - PullRequest
5 голосов
/ 27 ноября 2011

При попытке вернуть сделанный мной коммит в мой репозиторий папки .emacs.d я получаю следующее сообщение:

haziz@haziz> git revert 7fe3f

error: could not revert 7fe3f0b... .emacs.d contents from ubuntu hp 15
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'

То, что я пытаюсь сделать, - это отменить изменения, которые я внес в свой файл init.el, и за ним последовал другой коммит, который я пытаюсь отменить. Я бы предпочел вернуть, а не сбросить - жесткий, поскольку, насколько я знаю, последний полностью стирает самый последний коммит. Я хотел бы создать новый коммит, чтобы я мог "отменить" возврат.

Другими словами, я пытаюсь сделать следующее:

Git Commits [A]...[B]

будет возвращено к

Git Commits [A]...[B]...[A']

Я что-то не так делаю?

Редактировать: Я пытался сделать diff / merge настолько хорошо, насколько мог, затем другой коммит, но тогда он все еще дает мне это новое сообщение об ошибке:

haziz@haziz> git revert 7fe3f0ba3182b591f11c0b59e006dc6c990b7470

fatal: Your local changes would be overwritten by revert.
Please, commit your changes or stash them to proceed.

Как мне сказать, чтобы он игнорировал (но не удалял) неотмеченные файлы, не прибегая к файлу .gitigore. Честно говоря, меня не волнует большинство неустановленных файлов, которые являются временными файлами emacs и т. Д.

Ответы [ 2 ]

9 голосов
/ 27 ноября 2011

Q. Какой конфликт?

Конфликт от объединения обратного патча этой ревизии, когда более поздние ревизии изменили те же строкикода: конфликт слияния

Редактировать Если вы отменяете последний коммит, это означает, что у вас были локальные изменения (см. git status).Не забывайте, что вы можете иметь поэтапные и неустановленные локальные изменения.Чтобы легко увидеть все локальные изменения, используйте

   git diff HEAD

. Вам просто нужно открыть нефиксированный файл (git status), чтобы увидеть конфликтующие файлы.Достаточно скоро вы увидите маркеры конфликта <<<<, =====, >>>>>.

Вы можете использовать

git mergetool

для разрешения конфликтов с помощью более удобных инструментов, таких какMeld, KDiff3, Gvim и т. Д.

0 голосов
/ 03 мая 2015

Вы делаете путаницу между неотслеживаемыми файлами и неподготовленными файлами.

  • неотслеживаемые файлы неизвестны Git, вы никогда не git add редактировали их (т.е. git status будет отображать их в разделе Untracked files:).

  • Неотмеченные файлы - это отслеживаемые файлы, которые имеют локальные изменения, которые вы не подготовили для фиксации (т. Е. git status покажет их в разделе Changes not staged for commit:). Эти изменения будут включены в следующий коммит, если вы запустите git commit -a, но не если вы запустите git commit без -a.

Не имеет смысла указывать git игнорировать неизменные изменения: они есть и затрагивают файлы, которые волнует Git.

...