В чем разница между рабочим каталогом и локальным хранилищем?

Я создал новый репозиторий GitHub. Я довольно смущен рабочим каталогом и локальным хранилищем. Когда я работаю самостоятельно, все мои вещи находятся в рабочем каталоге. Но когда я работаю с репо, я должен проверить свои вещи там. Но это одно и то же? или они должны быть отдельными. Тогда как зафиксировать мои вещи в рабочем каталоге в моем локальном репо. Как зафиксировать мое локальное репо в удаленном репо. Как это сделать с помощью Git Bash? Спасибо!

4 ответа

Решение

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

Чтобы увидеть, что было изменено, используйте $ git status,

Чтобы зафиксировать ваши изменения (изменения и / или новые файлы) в локальном хранилище, используйте $ git add а потом $ git commit,

Чтобы увидеть, что было совершено использование $ git log,

Затем, если вы хотите зафиксировать ваши изменения в удаленном хранилище, используйте $ git push,

Обратите внимание на то, что печатают команды git, они часто содержат советы, что делать.

Если вы работаете с GitHub, их помощь также полезна: отправка на пульт.

Хорошая основная информация также на сайте atlassian.


НАПРИМЕР:

Предположим, вы запустили свой репозиторий git $ git init в JavaRepo dir и проверил там проект с $ git pull или же $ git clone, Тогда JavaRepo должен содержать файл.git (среди прочего, файлы git с точками) - вы можете проверить это с помощью $ ls -a, Эти файлы сами по себе являются локальным репозиторием git, и нет необходимости различать каталог "рабочий каталог" и каталог "локальный репозиторий".

Итак, начните работать с файлами в JavaRepo: скажем, вы изменили файл example.java и создали новый файл example2.java. казнить $ git status в JavaRepo (или в любом его подкаталоге). Должно отображаться: "изменено: пример.java ", "неотслеживаемые файлы: пример2.java".

Добавьте свои файлы в область подготовки с помощью $ git add example.java а также $ git add example2.java Команды из каталога с этими файлами. (Заметить, что $ git add как для измененных, так и для новых файлов.)

И, наконец, передайте ваши файлы $ git commit -m "example changes" (-m остается для сообщения - комментарии к коммиту).

$ git log должен показать этот коммит.

Содержимое папки вашего проекта (папки и файлы, которые вы найдете в ней) представлено рабочим каталогом.

Рабочий каталог похож на верстак, где вы работаете со своими файлами (вы их редактируете, добавляете новые файлы, удаляете файлы и т. Д.).

С другой стороны, папка.git (которая является скрытой папкой) представляет собой репозиторий.

В папке.git есть два "места", которые следует упомянуть: промежуточная область (представленная индексным файлом) и история фиксации (представленная папкой объектов).

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

Когда у вас есть все файлы, которые вы хотите обновить в следующей версии вашего проекта в области подготовки, вы готовы сохранить их в следующей версии вашего проекта, которая называется фиксацией. Вы делаете это с помощьюgit commit команда.

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

Коммиты находятся в истории коммитов (папка объектов).

Итак, чтобы добавить файл в наш репозиторий:

Это видео очень просто и наглядно объясняет вещи (также помогает видео перед и сразу после него!)

Когда вы создаете файл на своем компьютере и начинаете работать с ним, этоworking directory. Это синоним верстака или рабочего места. На данный момент ваш не репозиторий.

Чтобы сделать свойproject-folderв репозиторий, вам нужно использоватьgit initкоманда. Это создает скрытую папку с именем .git внутри основной папки, которая называется репозиторием.

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

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

Существует слой между рабочим каталогом и локальным хранилищем. Это называется областью постановки. Когда вы добавляете измененные файлы с помощью "git add", изменения сначала сохраняются в промежуточной области для проверки. Затем вы можете использовать "git commit" для дальнейшего продвижения ваших изменений из промежуточной области в локальное репо.

Другие вопросы по тегам