При запуске нового проекта первое, что вам нужно сделать, это создать новый репозиторий Git. Это не только помогает вам поделиться проектом с коллегами или публично, но также является отличным способом отслеживать обновления молодого проекта, который неизбежно претерпит значительные изменения в своей ранней жизни. Имея полную историю этих изменений и полезные функции, такие как ветки , вы можете легче тестировать различные проекты / реализации для проекта, не теряя предыдущей работы.
Как и все в Git, есть несколько способов делать то, что мы хотим, в зависимости от того, что вам нужно. В этой статье мы покажем несколько способов создания нового репозитория.
Создание репозитория с нуля
Чтобы запустить это новое репо, вы захотите использовать команду init
. Для этого перейдите в каталог вашего проекта и введите следующее:
$ git init
Initialized empty Git repository in /Users/scott/projects/my-new-project/.git/
Это можно сделать в любое время в вашем проекте, независимо от того,
есть ли там файлы или нет. После того, как вы добавили несколько файлов
и почувствуете, что находитесь в точке, в которой вы должны
зафиксировать свой код, вы можете использовать команду add
чтобы
добавить свои файлы в новое репо:
$ git add .
Это поместит файлы в ваш текущий рабочий каталог для следующего коммита.
После размещения наших файлов мы можем убедиться, что они готовы к
фиксации, используя команду status
:
$ git status
On branch master
Initial commit
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: index.js
new file: package.json
Наконец, вы можете зафиксировать файлы в новом репо, используя commit
:
$ git commit -am "Initial commit"
[master (root-commit) 37a82f5] Initial commit
2 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 index.js
create mode 100644 package.json
Здесь мы также используем флаги -a
и -m
, которые делают следующее:
-a
: зафиксировать все поставленные файлы-m
: использовать следующую строку в качестве сообщения фиксации
Проверять
Создание репозитория для существующего проекта
Создание репозитория для существующего проекта - это практически тот же процесс, что и создание репозитория для нового проекта. Как и в предыдущем разделе, вы захотите выполнить те же общие команды:
$ git init
Initialized empty Git repository in /Users/scott/projects/my-new-project/.git/
$ git add .
$ git commit -am "Initial commit"
[master (root-commit) 37a82f5] Initial commit
2 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 index.js
create mode 100644 package.json
Обратите внимание, что git add .
команда добавит все файлы в текущий
рабочий каталог, в том числе в подкаталоги. Однако он также добавит
некоторые файлы или каталоги, которые могут вам не понадобиться,
например node_modules
для проекта Node.js. Чтобы избежать включения
таких нежелательных файлов / каталогов, вы должны создать и
зафиксировать файл .gitignore
Немного сделав резервную копию, наши команды для создания репозитория для существующего проекта могут выглядеть примерно так:
$ git init
Initialized empty Git repository in /Users/scott/projects/my-new-project/.git/
$ echo "node_modules/" > .gitignore
$ echo "package-lock.json" >> .gitignore
$ git add .
Теперь, когда в вашем проекте присутствуют эти «игнорируемые» элементы, вам не нужно беспокоиться о том, что они случайно поставлены и зафиксированы. Например:
$ npm install
$ ls -l
total 40
-rw-r--r-- 1 scott staff 0 Sep 16 15:15 index.js
drwxr-xr-x 4 scott staff 136 Sep 16 15:27 lib
drwxr-xr-x 52 scott staff 1768 Sep 16 15:32 node_modules
-rw-r--r-- 1 scott staff 14233 Sep 16 15:32 package-lock.json
-rw-r--r-- 1 scott staff 362 Sep 16 15:32 package.json
$ git add .
$ git status
On branch master
Initial commit
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: .gitignore
new file: index.js
new file: lib/api.js
new file: lib/db.js
new file: package.json
$ git commit -am "Initial commit"
[master (root-commit) 9646a88] Initial commit
5 files changed, 19 insertions(+)
create mode 100644 .gitignore
create mode 100644 index.js
create mode 100644 lib/api.js
create mode 100644 lib/db.js
create mode 100644 package.json
Обратите внимание, что наш игнорируемый файл (package-lock.json) и
каталог (node_modules) не включаются в постановку даже после выполнения
git add .
, или фиксация.
Примечание . Использование .gitignore
не только рекомендуется
при создании репозитория для существующего проекта, но мы и ссылаемся на
него здесь, потому что он, скорее всего, понадобится вам для
существующего проекта, поскольку более зрелые проекты, как правило,
накапливают файлы, которых не должно быть. отслеживаются или совместно
используются пользователями.
Клонирование существующего проекта
Хотя вы технически не создаете новое репо, в этом случае вы можете
клонировать существующее, избавляя вас от необходимости самостоятельно
git init
. Это очень часто, когда вам нужно внести изменения в
существующий проект или, может быть, если вы хотите клонировать
скелетный проект, чтобы помочь вам начать работу.
Чтобы клонировать репо, вам нужно использовать команду clone
:
$ git clone <repo-url>
Это скопирует все содержимое репозитория в ваш текущий рабочий каталог под именем репозитория. Например:
$ git clone [email protected] :scottwrobinson/twentyjs.git
Cloning into 'twentyjs'...
remote: Enumerating objects: 48, done.
remote: Total 48 (delta 0), reused 0 (delta 0), pack-reused 48
Receiving objects: 100% (48/48), 9.35 KiB | 0 bytes/s, done.
Resolving deltas: 100% (22/22), done.
$ ls -l
total 0
drwxr-xr-x 9 scott staff 306 Sep 16 15:55 twentyjs
Есть ряд других вариантов и вариантов использования этой команды, но они не входят в объем данной статьи, поэтому мы не будем их здесь рассматривать. Для получения дополнительной информации ознакомьтесь со статьей Git: Clone a Repository .