Цитируя Линуса Торвальдса, когда его спросили, сколько файлов может обработать Git во время его Tech Talk в Google в 2007 году (43:09):
... Git отслеживает ваш контент. Он никогда не отслеживает ни одного файла. Вы не можете отслеживать файл в Git. Что вы можете сделать, так это то, что вы можете отслеживать проект с одним файлом, но если у вашего проекта есть один файл, обязательно сделайте это, и вы можете это сделать, но если вы отслеживаете 10 000 файлов, Git никогда не увидит их как отдельные файлы. Git думает все как полный контент. Вся история в Git основана на истории всего проекта...
(Стенограммы здесь.)
Тем не менее, когда вы погружаетесь в книгу Git, первое, что вам говорят, это то, что файл в Git может быть отслежен или не отслежен. Более того, мне кажется, что весь опыт работы с Git направлен на управление версиями файлов. При использовании git diff
или git status
выводится отдельно для каждого файла. При использовании git add
вы также можете выбирать для каждого файла отдельно. Вы даже можете просмотреть историю на файловой основе и молниеносно.
Как следует толковать это утверждение? С точки зрения отслеживания файлов, чем Git отличается от других систем контроля версий, таких как CVS?