2016-11-30 3 views
1

Я версию моего $HOME с git, но с иначе названным каталогом репозитория, чтобы моя подсказка не всегда отображала git.Файлы репозитория, отображаемые в `git status`

Я установка псевдоним, когда я хочу использовать git на моем $HOME:

alias gith='git --git-dir=/home/ravi/.githome --work-tree=/home/ravi' 

Репозитория каталог .githome сами не должен появляться в gith status, но:

~$ git --git-dir=/home/ravi/.githome --work-tree=/home/ravi status -s 
M .dotfiles 
M .githome/COMMIT_EDITMSG 
M .githome/index 
M .githome/index.lock 
M .githome/logs/HEAD 
M .githome/logs/refs/heads/master 
M .githome/refs/heads/master 
M .local/share/fzf 
M bin 
M lib 
M prj/sample_app 

Я пытаюсь игнорировать каталог .githome следующим образом:

~$ grep .githome .gitignore 
/.githome/ 
~$ cat .githome/.gitignore 
* 

Вопросы:

  1. Почему не мои два исключения файлов работы?
  2. Почему в любом случае я должен явно исключать каталог репозитория?
+1

Это звучит, как, возможно, вы инициализируется репозиторий Git в неправильном месте, или там были папки, внутри которых не должны были там , Что касается того, почему '.gitignore' может не работать, если вы уже сделали эти папки/файлы в своем репозитории, тогда' .gitignore' не будет работать после факта. –

ответ

2

Убедитесь, что вы еще не совершили githome уже потому, что gitignore не может удалять файлы из репозитория.

git rm -rf --cached . 
git add . 

Запустить это. Это заставит ваш репозиторий работать снова, очистив все и потянув его в отношении вашего файла gitignore.

+0

Спасибо и добро пожаловать в SO! –

+0

@TomHale Спасибо! : D Я использовал его так долго, и я решил, что пришло время начать отвечать на некоторые вопросы. –

+0

Это отличное сообщество, посвященное развитию человеческого знания. Спасибо, играя свою роль :) –

1

Оказалось, что .githome был добавлен в предыдущую фиксацию.

на основе комментариев @ Тима и @ ответ KingAlandyDy, я сделал следующее:

gith rm -r --cached .githome/ 
+2

Следите за «возвращением во времени» (проверяя старые коммиты). После того, как файлы вернутся в индекс, так как они будут связаны с тем, что вы проверили старую фиксацию, а затем попросите «вперед вовремя» (возвращаясь к вашему обычному «хозяину»), Git, по сути, скажет: «О, я вижу, что у меня есть эти файлы в текущем коммитирующем времени, а не в новом коммите, поэтому я должен просто удалить их с рабочего дерева». Если вы можете позволить себе перехватывать все коммиты в репозитории, см. Ответы на ветви фильтра и BFG на http://stackoverflow.com/q/307828/1256452 – torek

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

  • Нет связанных вопросов^_^