2014-02-27 1 views
40

Я начал получать это сообщение. Независимо от того, что я редактирую и пытаюсь совершить, он говорит, что ничего не делать. Похоже, что git не видит мой рабочий каталог и ищет где-то еще.Устранение неполадок в каталоге .git (ничего не зафиксировать)

Если я бегу git status он выводит то же самое:

nothing to commit (working directory clean) 

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

Что можно сделать здесь?

+2

Что находится в файле '.gitignore'? – SamV

+2

Попробуйте посмотреть файлы '.gitignore' в кассе, если таковые имеются. Возможно, файлы, которые вы указали, игнорируются. – user4815162342

+1

Где я могу найти такой файл? Как я его не вижу в каталоге .git – Andrius

ответ

19

Обнаружено, что не так. Я не понимаю, как, но .git путь к каталогу каким-то образом был изменен на другой путь, чем я работал. Поэтому все, что я изменил, не было проверено, потому что git проверял другое место. Я заметил это, когда я повторно инициализировал его, и он показал, что он повторно инициализировал совершенно другой каталог. Когда я cd .. из моего текущего каталога и вернул его обратно, а затем снова инициализировал, а затем переключил обратно на правильный каталог .git и начал видеть мои изменения.

+0

Thaks @Andrius для ответа! – Gediminas

+6

Я точно не следую. Как именно вы знали, что «git» искал не то место? И как вы это исправили? Я попробовал 'git init', но это ничего не изменило ... – MichaelChirico

+0

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

0

У меня просто была проблема, потому что я был в неправильной папке. Я был вложен в 1 уровень, поэтому файлов git не было найдено.

Когда я выполняю cd .. в правильном каталоге, я смог зафиксировать, как и ожидалось.

1

Для всех, кто видит эту проблему, самым простым решением было просто «git clone» вашего репо и удалить старый каталог. Это должно правильно настроить ваш путь по умолчанию.

6

Для людей, работающих в открытых проектах с открытым исходным кодом, если вы сталкиваетесь с этим поведением, скорее всего, файл, который вы редактируете, исключается из репозитория git, используя .gitignore. Я столкнулся с таким же поведением, и после нескольких часов я обнаружил, что файл, который я делал для изменения, исключен в .gitignore, потому что это файл настроек, и каждый из них будет иметь свою локальную версию.

+0

Это ответ, который я искал. Хорошо, что вы указали. –

3

Проверьте местонахождение, находится ли он в правильном месте проекта git.

+1

Это была простая проблема для меня ..: D –

1

Вот еще один поворот на нем. Мой файл .gitignore, похоже, был изменен/поврежден, так что файл, который я игнорировал

, например.

/Project/Folder/StyleCop.cache 

переоделся к этому (Примечание теперь две отдельных линий)

/Project/Folder 
StyleCop.cache 

так мерзавец игнорируют любые файлы, которые я добавил к и ниже проекту.

Очень странно, не знаю, как изменился файл .gitignore, но потребовалось некоторое время, чтобы обнаружить. После исправления сотни файлов css и js, которые я добавил, вошли.

2

У меня была та же проблема. Филиал, над которым я работал, не отслеживался.Исправлено:

git push orgin 

Это временно устранено. Для того, чтобы внести изменения уместнее I:

git config push.default tracking 
0

Встречается это при использовании SourceTree, закрепленное его

  1. Первый копить текущие неподтвержденные изменения.
  2. Применить/разблокировать те же изменения, используя Sourcetree.

Работал как очарование.

2

В моем случае я ранее инициализировал каталог git, где я пытался создать новый. Я просто удалил все старые файлы и начал с нуля.

0

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

git remote rm origin 
git remote add origin https://github.com/abc/xyz.git 
0

Не пытайся совершали/добавление файлов. Просто запустите следующие 2 команды (:

 
    git remote add origin http://xyzremotedir/xyzgitproject.git 
    git push origin master 
0

на ветке мастер Проблема не привержен уже ничего совершить (рабочий каталог чистой), если столкнулись с этой проблемой, то как раз только использовать следующую команду

git push -u origin master 

или

git reset 
git add . 
git commit -m "your commit message" 
git push -u origin master 
0

если .git уже есть в вашей директории, затем следуют:

  1. rm -rf .git/
  2. git init
  3. git remote add origin http://xyzremotedir/xyzgitproject.git
  4. git commit -m "do commit"
  5. git push origin master
+0

Это не сработает, так как нажатие не удастся и, что более важно, вы потеряете всю историю репозитория. И: это не отвечает на вопрос. –

0

Это должно было случиться, потому что по ошибке вы реинициализирована мерзавца в том же каталоге. Удалить папку с .git с помощью следующей команды Перейдите в хранилище вы хотите загрузить открыть терминал, а затем использовать следующие команды

  1. удалить .мерзавец хранилище sudo rm -r .git
  2. Теперь снова повторить с инициализацией GIT репозиторий с помощью git init
  3. затем git commit -m "first commit"
  4. git remote add origins https://github.com/user_name/repo
  5. git push -u origin master После этого введите имя пользователя и пароль, и вы хорошо идти
+0

Где смысл дублирования ответов? OP уже нашел рабочее решение .... –

+0

@NicoHaase Согласен, но я отправлял сообщение для кого-то нового, у кого может быть такая же проблема. Кроме того, я старался держать мой ответ аккуратно и легко следовать. В любом случае спасибо. – Mahi

0

Перейти к папка с рабочим пространством

  1. найти .git папку
  2. удалить папку и ее содержимое
  3. использовать команду инициализации git init.

Теперь он покажет, что все файлы могут быть зафиксированы.

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