В чем разница между рабочим каталогом и локальным хранилищем?
Я создал новый репозиторий 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 букв и цифр), и это хэш действует как имя для коммита, это способ, чтобы обратиться к нему.
Коммиты находятся в истории коммитов (папка объектов).
Итак, чтобы добавить файл в наш репозиторий:
- Сначала мы создаем его в папке нашего проекта, чтобы он попал в наш рабочий каталог.
- Затем мы добавляем его в область подготовки (используя
git add
команда) - И затем он становится частью фиксации в нашей истории фиксации (с использованием
git commit
команда)
Это видео очень просто и наглядно объясняет вещи (также помогает видео перед и сразу после него!)
Когда вы создаете файл на своем компьютере и начинаете работать с ним, этоworking directory
. Это синоним верстака или рабочего места. На данный момент ваш не репозиторий.
Чтобы сделать свойproject-folder
в репозиторий, вам нужно использоватьgit init
команда. Это создает скрытую папку с именем .git внутри основной папки, которая называется репозиторием.
.git представляет собой локальный репозиторий, который состоит из промежуточной области и истории коммитов.
Отношения между рабочим каталогом, промежуточной областью, локальным репозиторием (содержащим историю коммитов) и удаленным репозиторием, а также то, как они взаимодействуют с помощью различных команд в рабочем процессе git, очень хорошо показаны на этом изображении Никки Сиапно .
Существует слой между рабочим каталогом и локальным хранилищем. Это называется областью постановки. Когда вы добавляете измененные файлы с помощью "git add", изменения сначала сохраняются в промежуточной области для проверки. Затем вы можете использовать "git commit" для дальнейшего продвижения ваших изменений из промежуточной области в локальное репо.