Как я создал все эти дополнительные файлы во время git mergetool и как мне от них избавиться?

Я просто настроил свой новый репозиторий git с настройкой p4merge в качестве внешнего инструмента git mergetool. Я на Mac, и я только что следовал руководству по git для внешних инструментов слияния:

https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration

Я проработал свои конфликты слияния и заметил, что он, похоже, держит отдельный экземпляр p4merge открытым для каждого нового открытого конфликта классов. В моем старом репозитории я просто нажимал «Сохранить», закрывал окно, и git автоматически открывал следующий конфликт (в то время я также работал в Windows). Теперь это, казалось, приводило только к тому, что сохранение сохранялось только в половине случаев, и мне приходилось продолжать вводить «git mergetool» в терминал, чтобы вернуться в p4merge. После того, как я все сделал, моя ветка была чистой, но все эти отдельные процессы для p4merge все еще были открыты. Закрытие их всех вызвало кучу ошибок в командной строке, а затем я получил ТОННУ базовых/локальных/удаленных артефактов. Сейчас статус моей ветки выглядит примерно так:

modified:   src/main/java/com/utils/ClientResponseUtils.java.orig
    deleted:    src/main/java/com/utils/ClientResponseUtils_BACKUP_70929.java
    deleted:    src/main/java/com/utils/ClientResponseUtils_BASE_70929.java
    deleted:    src/main/java/com/utils/ClientResponseUtils_LOCAL_70929.java
    deleted:    src/main/java/com/utils/ClientResponseUtils_REMOTE_70929.java
    modified:   src/main/java/com/utils/ListUtils.java.orig
    deleted:    src/main/java/com/utils/ListUtils_BACKUP_85524.java
    deleted:    src/main/java/com/utils/ListUtils_BASE_85524.java
    deleted:    src/main/java/com/utils/ListUtils_LOCAL_85524.java
    deleted:    src/main/java/com/utils/ListUtils_REMOTE_85524.java

За исключением НАМНОГО, НАМНОГО длиннее, у него в основном есть набор из них для всего, к чему я прикасался, и это было много классов в слиянии.

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

Заглянув немного дальше, прежде чем публиковать, я понимаю, что эта страница поддержки может помочь мне очистить мое использование командной строки:

http://answers.perforce.com/articles/KB/2848/

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


person Benny    schedule 05.06.2017    source источник
comment
Я не использую p4merge (или git mergetool в первую очередь), поэтому у меня нет советов, как его использовать, но все эти временные файлы с именами *_BACKUP_*, *_BASE_* и т. д. git mergetool сама создает. Они не должны отображаться как удаленные не потому, что это не так, а потому, что они вообще не должны были быть зафиксированы. Чтобы отображаться как удаленные, кто-то должен был добавить и зафиксировать их, предположительно по ошибке.   -  person torek    schedule 06.06.2017
comment
Они появились под моим статусом git после того, как я вручную закрыл все экземпляры p4merge, с которыми, как мне казалось, покончено. У меня явно есть пара проблем: как правильно использовать p4merge на Mac и избавиться от всех этих лишних файлов прямо сейчас.   -  person Benny    schedule 06.06.2017


Ответы (1)


Это поможет

git config --global mergetool.keepBackup false

Если вы в основном заинтересованы в том, чтобы не зафиксировать файлы, вы можете добавить их в .gitignore:

*_BACKUP_*
*_BASE_*
*_LOCAL_*
*_REMOTE_*

И вы можете иногда запускать git clean -fx, чтобы удалить их все

person Klas Mellbourn    schedule 06.06.2017
comment
Спасибо за все это, все они были добавлены в мой репозиторий Git-Fu. В процессе очистки я также понял, что мои разрешения были испорчены (я проделал некоторую работу с ветками, находясь под root на своей машине, я думаю, что именно здесь я изначально ошибся). Я исправил это, перейдя в .git/objects и запустив sudo chown -R myname:'mygroup' * В основном добавляя этот комментарий для собственного назидания, если это произойдет со мной снова через два месяца, и я должен помнить, что я сделал в прошлый раз . - person Benny; 06.06.2017