Git не будет добавлять файлы - просто пустой каталог - PullRequest
3 голосов
/ 09 марта 2012

Я работал над проектом для iPhone в Xcode и решил, что хочу поставить его на github.Я создал репозиторий на github, клонировал его и переместил все мои файлы в каталог.Затем я попытался

git add Directory .

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

git add Directory .
git add Directory -A
git commit -a

Ничто не добавит эти файлы в каталог.Что я делаю не так?

Ответы [ 4 ]

8 голосов
/ 22 июня 2014

Может присутствовать другой репозиторий.

Это происходило со мной с каталогами плагинов в моих vimfiles . Воспроизвести как это :

  1. git clone что-то из GitHub (в моем случае, плагин, например, vim-easymotion) где-то в вашем хранилище (в моем случае в vimfiles\bundle)
  2. git add ., тогда git status покажет, что все, что было достигнуто, это то, что имя папки (в данном случае bundle\vim-easymotion) было добавлено как new file
  3. git commit, затем git push origin master (отправка изменений в GitHub)
  4. Перейдите на GitHub в браузере, чтобы проверить папку, в которую вы клонировали что-то на шаге 1, и вы увидите, что она показывает имя клона в виде пустого файла

Я понял, что происходит, только когда из моего каталога vimfiles\bundle\vim-easymotion в Git Bash я выпустил git config -l и заметил ссылку на Lokaltog, владельца vim-easymotion хранилище. Поэтому я выдал git remote -v, и, конечно же, в этом каталоге псевдоним Git был origin https://github.com/Lokaltog/vim-easymotion.git, который является не удаленным адресом моего хранилища, а адресом плагина. Ошеломленный моим невежеством, я перешел в каталог плагинов с FreeCommander , показывая скрытые файлы и, конечно, там были файлы .git создателя плагина.

Лекарство , при условии, что вы клонировали чужой репозиторий в свой, как я сделал:

  1. Git Bash в клонированном подкаталоге с ошибками, введите find . | grep /.git | xargs rm -rf, чтобы удалить все ненужные .git файлы
  2. git remote -v чтобы убедиться, что вы вернулись к псевдониму вашего собственного пульта
  3. Теперь временно переместите весь этот подкаталог из вашего хранилища.
  4. git status теперь сообщит, что файл был удален (в моем случае vim-easymotion)
  5. git add -A чтобы выполнить это удаление, затем git commit и git push origin master, чтобы удалить это тупое имя файла с вашего пульта на GitHub
  6. Переместите (теперь чистый) подкаталог обратно в свой репозиторий и продолжайте как обычно.
2 голосов
/ 09 марта 2012
git add .

при нахождении в Справочнике следует добавить все внутри, если только это не игнорируется вашим файлом .gitignore ...

1 голос
/ 10 марта 2012

Я удивлен, узнав, что git add . ; git commit не работает для вас. Вы уверены, что запускаете эти команды из самого верхнего каталога в вашем репо? Вот краткое изложение того, что вы обычно ожидаете:

cd ~/Directory  # or whatever the path is in your case
git status      # shows lots of "Untracked files" because this is a new repo
git add .       # adds everything to your index
git status      # now shows lots of "Changes to be committed"
git commit      # fires up the editor and finishes the commit
git show        # shows the commit you just made

В какой момент это сломается для вас?

1 голос
/ 09 марта 2012

Попробуйте git add . или, возможно, используйте git gui и выберите в нем файлы, щелкнув значки, чтобы разместить их, а затем зафиксировать.

git не отслеживает каталоги - он отслеживает файлы и каталоги, которые можно найти вместе. Если вы добавите файлы явно, каталог будет включен как часть пути к файлу. Чтобы добавить содержимое каталогов git add Directory/* сделает работу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...