2010-07-23 2 views
10

Мы переходим от Perforce к GIT. В perforce были некоторые файлы, которые я хотел бы разместить в репозитории, но они не должны регулярно проверяться отдельными разработчиками. Такие вещи, как файлы проекта eclipse. Каждый разработчик может получить исходный файл .project, но затем слегка подстроить его для своей среды.Отметьте файл в репозитории GIT как временно проигнорированный

С P4 я мог бы взять эти файлы, поместить их в отдельный список изменений и забыть о них. Синхронизация не будет перезаписывать их, и они не будут зафиксированы, когда я перечислил свой список изменений по умолчанию.

Есть ли способ сделать что-то подобное с GIT?

Я хотел бы еще быть в состоянии "мерзавец совершить -a"

+0

Возможный дубликат [Конфигурационные файлы конкретной машины] (http://stackoverflow.com/questions/1396617/committing-machine-specific-configuration-files) – Senseful

+0

Возможный дубликат [Может ли я использовать git commit для файла и игнорировать его изменения содержимого?] (https://stackoverflow.com/questions/3319479/can-i-git-commit-a-file-and-ignore-its-content-chang es) –

+0

* Я хотел бы по-прежнему иметь возможность «git commit -a» * - это ваша проблема. С 'git' вы обычно не просто совершаете все, вы просматриваете то, что изменилось с помощью' git status' и 'git diff', вы решили, что добавить (или' .gitignore'), а затем зафиксировать то, что вам нужно , Этот рабочий процесс гарантирует, что ваши коммиты не содержат каких-либо прорывов, например, случайно проверенных в объектных или временных файлах и т. Д. См., Создание истории «git» рассказывает историю, и чем лучше вы это расскажете, тем более полезным она будет. Лучше не размахивать им бессмысленным объявлением - моей кучей мусора. – cmaster

ответ

5

Если вам нужна общая база для тех, кто (.project, .classpath ...), вы можете:

  • шаблон версия для этих файлов (.project_tpl, .classpath_tpl, ...)
  • использовать filter driver для создания на кассе, фактические файлы (которые не будут версированы, и только измененные локально разработчиками)

alt text

('clean' шаг во время фиксации ничего для этих шаблонов не будет делать.
Только «smudge» шаг здесь используется, чтобы генерировать личные файлы)

Примечание: это небольшое «неправильное использование» драйвера фильтра, который должен обрабатывать только содержимое файла, а не генерировать новые.
Но это может помочь вам в вашем сценарии (при условии «smudge» скрипт не перезаписывает вслепую файлы затмений, если они происходят уже здесь.)

+1

Таким образом, я мог бы создать довольно тупой режим smudge, который удаляет .tmpl из чего-либо с расширением .tmpl. Я мог бы добавить .project.tmpl или configuration.xml.tmpl в git, и когда люди вытаскивают их, они получают .project или configuration.xml Я думаю, я мог бы также добавить эти сгенерированные файлы в .gitignore и быть золотым. –

+0

@Marc: вот идея :) – VonC

10

Вы, вероятно, ищет

git update-index --assume-unchanged .project

+0

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

+0

Не об этом я знаю. –

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