2015-12-05 2 views
0

В моем компьютере у меня есть папка nextdoor, и внутри нее есть подпапка source. Все мои изображения и код присутствуют внутри папки source, но каким-то образом я не могу вытолкнуть эту конкретную подпапку в удаленный репозиторий.Невозможно добавить подпапку в удаленный репозиторий в Github

Дистанционное Repository: LINK

Если вы идете в удаленный репозиторий, вы можете увидеть в папке source не добавляется. Вложенная папка также не пуста. Я пробовал кучу методов, но, к сожалению, я не могу продвинуть эту конкретную подпапку.

Если я git status

git status 
On branch master 
Your branch is up-to-date with 'origin/master'. 

nothing to commit, working directory clean 

Всего подпапки:

bin include lib local pip-selfcheck.json README.md source static_cdn 

Поскольку я в состоянии выдвинуть все папки, но почему source не идет вверх?

Внутри source папки:

crytography manage.py registration.txt templates 
db.sqlite3 nextdoor static 

.gitignore файл:

# global gitignore for IDE, etc 
# -- should still exclude project specific ignores in .gitignore 

# system junk 
.netrwhist 
.Trash-1000 
*.pyc 
npm-debug.log 

# IDEs 
.idea 
.env 

# private files 
id_rsa 
*.key 

Может кто-нибудь мне помочь, пожалуйста?

+0

вы уверены, что в вашем исходном каталоге нет файла .gitignore? –

+0

Отредактировал мой вопрос. – python

+0

странно ... ваш «исходный» каталог не является символической ссылкой или что-то в этом роде? –

ответ

2

Ваш последний фиксатор (815bb7d) сломан. Он добавляет «половину подмодуля».

При добавлении подмодуля с использованием git submodule add происходит две вещи: создается файл .gitmodules, содержащий URL-адрес вашего подмодуля, и создается «папка», аннотированная фиксацией вашего подмодуля.

В вашем случае вам удалось создать коммит, содержащий второй, но не первый:

$ git ls-tree 815bb7d28719ab66e765ba8e265eb317766b68db 
100644 blob 506c8957ac440449d375416f45c6753a3cb65d83 .gitignore 
100644 blob 5f8188352aa817edb6808536f598d3ac74d448d7 README.md 
040000 tree c336cc94ab9a686360ee9e6f330558cdee571e9d bin 
040000 tree 334b6ff5f7c516042b7a185ec6106208df8495a7 include 
040000 tree e65f051d2d0e9f2648a6b83f0ef0836893423ee5 lib 
040000 tree 63a79abf5f366fc25b0b47fc527ea237163a0505 local 
100644 blob 2dbf660a900d007e70510ff0ccc2c553b32d6120 pip-selfcheck.json 
160000 commit 4732e130e321cacd355f8bffbf1c1726e94576c6 source 
040000 tree 12edc4bcf6f3ab7a76dc5bda57a940c0caeae7e0 static_cdn 

Вы видите, фиксация объекта сохраняется, но соответствующий .gitmodules файл не является.

У вас есть как минимум два варианта: либо выбросить сломанную фиксацию (git reset --hard 815bb7d28719ab66e765ba8e265eb317766b68db^), либо выбросить всю историю в целом, удалив каталог .git, как это предлагается в комментариях.


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

В вашем случае вы не смогли добавить файлы в «источник» в ваш репозиторий, потому что «источник» рассматривался как отдельный репозиторий, подмодуль.

+0

намного лучшее решение, чем мой вариант «грубой силы» :) у вас есть мой голос! –

0

Это самое быстрое, но не самое лучшее решение. Кажется, что что-то в вашем репозитории git разбито. Самый быстрый способ, которым я получил эту работу, - уничтожить ваш репозиторий git и начать все заново.предупреждения вы потеряете свою историю:

rm -rf .git 
git init 
git add ... 

Я бы лучше investiage почему хранилище мерзавца нарушаются; как было предложено @michas

+0

Почему отрицательные голоса? Решение помогло мне! – python

+0

@python это сработало для вас, но я могу понять нижний план; это не очень приятное решение: утечка вашей ванной? Давайте разрушим дом и построим новый дом :) –

+0

Лучше исправить ваш репозиторий. ;) – michas

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