2017-01-28 12 views
0

У меня есть проект git, размещенный на github только с одной веткой (master) и только один участник (меня). После моего первоначального коммита я добавил некоторые файлы данных в свой локальный репозиторий, который мне не нужен. Я добавил в файлы и зафиксировал их в какой-то момент, но после их удаления делали другие коммиты. Удаленные файлы не находятся в удаленном или локальном репозитории, когда я делаю git diff --stat --cached origin/master, они не отображаются, а git cherry -v master показывает только текущую фиксацию, которую я имею без файлов.Команда Git push удаляет удаленные файлы, отсутствующие в локальном репозитории, или совершает

Однако, когда я делаю git push origin master, git пытается сжать и записать удаленные файлы данных. Я не могу понять, почему это происходит и как удалить файлы из моей промежуточной области.

Я сделал много коммитов, пытаясь получить удаленные файлы, чтобы их не толкали. В конце концов, поскольку у меня было так много коммитов, я скопировал все мои файлы в отдельной папке, запустил git reset --hard origin/master и заменил все файлы в локальном репозитории резервными файлами, а затем сделал git add * и git commit -m "comment".

+0

Откуда вы знаете, что git пытается сжать и записать удаленные файлы? – choroba

+0

Кроме того, git хранит историю, поэтому, если есть коммиты, содержащие файлы, нажатие на них было ритуальным делом. – choroba

+0

@Choroba После 'git push origin master' я вижу' Сжатие объектов: 100% (31/31), сделано. Написание объектов: 25% (11/44), 2.11 MiB | 325,00 KiB/s', но в коммите не так много объектов, и, в конечном итоге, запись запускается в ошибку, потому что удаленные файлы данных, которые он пытается добавить, слишком велики для размещения на github. – Vito

ответ

1

Вы должны бежать git cherry против хозяина происхождения, не так ли? И вы не должны запускаться - кэшированы, потому что в вашей промежуточной области может быть предварительная фиксация, но не по имени/хозяину, которая удаляет файлы.

0

git rebase -i - это то, что мне нужно, спасибо @choroba за указание на это. Файлы были в моей локальной истории, хотя они не были в локальном репозитории или коммит, поэтому я думаю, что git все еще пытался их протолкнуть.

Кроме того, спасибо @jbu, который правильно отметил, что я должен был запустить git cherry origin/master -v, чтобы увидеть коммиты, ожидающие нажатия.

+0

если эта проблема была решена, отметьте ответ :) –