2015-12-27 4 views
2

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

Когда кто-то клонирует мой репозиторий, они также скопируют мой файл .gitignore.

Файлы, помещенные внутри .gitignore, могут быть частными, так же как и имена файлов. Поэтому мне интересно, хорошая идея, что мой файл .gitignore перетаскивается или копируется в другой репозиторий? Как правило, файл .gitignore должен быть сам собой?

Можем ли мы сделать его не поддающимся тонированию или клонированием?

ответ

2

Для частных исключений вы можете использовать .git/info/exclude, который имеет тот же синтаксис и, в основном, работает одинаково, но не хранится в репозитории.

Также есть core.excludesFile (см man git-config) для собственных глобальной (то есть, не за репозитарии) исключает.

+0

Спасибо. Я хочу подчеркнуть, что целью использования файла .gitignore является предотвращение нажатия или клонирования определенных файлов в другой репозиторий. Итак, вы имеете в виду, что, используя '.git/info/exclude', я предотвращу передачу этих файлов в мой локальный репозиторий и, следовательно, не будет толкаться или клонироваться в другие репозитории? – Tim

+0

@ Тим Да, точно. Как я уже сказал, он работает точно так же, как '.gitignore', поэтому, если имена файлов являются частными, лучше использовать' .git/info/exclude'. Если у вас также есть эти файлы в нескольких репозиториях, использование глобального файла игнорирования может быть более удобным. – kirelagin

+0

, но что, если я хочу, чтобы в моем локальном репозитории включались файлы, которые я хочу предотвратить, чтобы нажать на другие репозитории? – Tim

2

Если вы не git add ваш файл .gitignore, он не будет частью индекса и, следовательно, никогда не будет нажат на удаленный компьютер.

Тот факт, что вы нажимаете свой файл .gitignore, означает, что вы его добавили - я даже не думаю, что git add --all делает это по умолчанию; так что, в основном, это ваша вина за то, что вручную добавила его в первую очередь.

+0

'git add --all' обновляет индекс в соответствии с рабочим каталогом, то есть добавляет _all_ новые файлы. Действительно все. Включая '.gitignore', если он существует. – kirelagin

+0

Я не перечисляю конкретные файлы в 'git add', но использую расширение файла оболочки' git add * ', потому что слишком много файлов для отображения явно. Вот почему .gitignore нажата. (1) Можно ли указать '.gitignore' внутри' .gitignore' сам, чтобы предотвратить «.gitignore', чтобы он был нажат или клонирован? – Tim

+0

@Tim Возможно, но это не имеет большого смысла. '.gitignore' специально для игнорирования, предназначенных для контроля версий. Поэтому, если вы не хотите, чтобы они контролировались версиями, вы должны поместить их в другое место. – kirelagin

1

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

Это верно, только если вы добавите .gitignore в ваш репозиторий.

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

+0

Правильно ли, что '.gitignore' и' .git/info/exclude' могут или может не храниться (т.е. отслеживаться) в моем локальном репозитории. Они только если я добавлю их в свой репозиторий? – Tim

+0

'.gitignore' * может * быть сохранен в репозитории (но опять же, вы можете либо игнорировать его, либо просто не добавлять). '.git/info/exclude' * не может * быть сохранен в репозитории. Это локально для вашего репо. –

+0

(1) «.git/info/exclude не может храниться в репозитории». Вы имеете в виду, что это невозможно, или не рекомендуется? (2) Является ли весь каталог '.git' репозиторием? Если нет, какая часть '.git' есть, а какая - нет? – Tim

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