2015-07-06 5 views
0

Приносим извинения, если этот вопрос уже был дан, но я не могу быть уверенным, что решения будут точно совпадать.SourceTree/Git хочет снова добавить все файлы

Во всяком случае, я уже много месяцев набирал силу, используя SourceTree с учетной записью Bitbucket. Теперь, внезапно, когда я делаю изменения, и SourceTree выбирает его, он на самом деле хочет «повторно добавить» каждый отдельный файл в проекте, от .gitignore до .project-файла ко всем исходным файлам и всего в промежутке (я имею в виду «повторное добавление», как в «зеленом круге с плюсом в нем» в SourceTree).

Излишне говорить, что это меня немного испугало, и, хотя я относительно удобен с помощью Git, я не хочу ничего путать здесь.

У кого-нибудь есть идеи? Я не делал ничего необычного (насколько мне известно) между последним изменением и этим новым изменением.

Заранее спасибо.

ответ

0

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

Возможно, у вас была проблема с отметками времени; иногда это может быть ненадежным. Или что-то могло коснуться каждого файла новой меткой времени, которая иногда может отбросить метод. Если вы работаете в Windows, вы можете установить git core.trustctime false, чтобы отключить проверку метки времени.

+0

Я запускаю это на Macbook. Должен ли я проверять метки времени на самих файлах? Что-нибудь еще, что я могу сделать на Mac? – BtySgtMajor

+0

Если вы делаете «git add -A», он будет повторно синхронизировать содержимое. Вы можете узнать, действительно ли это что-то изменит, выполнив 'git ls-tree HEAD' и сравните вывод с' git ls-files -s', чтобы увидеть, имеются ли те же хэши. Если они есть, изменений не будет. – AlBlue

+0

Я сделал это, и все хэши есть, кроме одного: git ls-tree HEAD показывает дерево «src», но другой вызов не показывает этот хеш, и я нахожу это немного странным/страшным. Хотя, как ни странно, статус git не показывает ни одного из файлов, которые использует SourceTree. Действительно смущен. – BtySgtMajor

0

Основываясь на моем опыте с той же проблемой, решение заключается в резервном копировании всего вашего репо, скопировав его где-то в безопасном месте, клонируя последнее «хорошее» сообщение о происхождении в каталог рабочего проекта, а затем добавляя измененные файлы в поэтапно, и совершать по мере необходимости, пока вы не вернетесь туда, где вам нужно. Исходя из решения здесь: https://xkcd.com/1597/

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