Перейти к содержимому

Как загрузить папку в git

  • автор:

2.1 Основы Git — Создание Git-репозитория

Если вы хотите начать работать с Git, прочитав всего одну главу, то эта глава — то, что вам нужно. Здесь рассмотрены все базовые команды, необходимые вам для решения подавляющего большинства задач, возникающих при работе с Git. После прочтения этой главы вы научитесь настраивать и инициализировать репозиторий, начинать и прекращать контроль версий файлов, а также подготавливать и фиксировать изменения. Мы также продемонстрируем вам, как настроить в Git игнорирование отдельных файлов или их групп, как быстро и просто отменить ошибочные изменения, как просмотреть историю вашего проекта и изменения между отдельными коммитами (commit), а также как отправлять (push) и получать (pull) изменения в/из удалённого (remote) репозитория.

Создание Git-репозитория

Обычно вы получаете репозиторий Git одним из двух способов:

  1. Вы можете взять локальный каталог, который в настоящее время не находится под версионным контролем, и превратить его в репозиторий Git, либо
  2. Вы можете клонировать существующий репозиторий Git из любого места.

В обоих случаях вы получите готовый к работе Git репозиторий на вашем компьютере.

Создание репозитория в существующем каталоге

Если у вас уже есть проект в каталоге, который не находится под версионным контролем Git, то для начала нужно перейти в него. Если вы не делали этого раньше, то для разных операционных систем это выглядит по-разному:

$ cd /home/user/my_project
$ cd /Users/user/my_project
$ cd C:/Users/user/my_project

а затем выполните команду:

$ git init

Эта команда создаёт в текущем каталоге новый подкаталог с именем .git , содержащий все необходимые файлы репозитория — структуру Git репозитория. На этом этапе ваш проект ещё не находится под версионным контролем. Подробное описание файлов, содержащихся в только что созданном вами каталоге .git , приведено в главе Git изнутри

Если вы хотите добавить под версионный контроль существующие файлы (в отличие от пустого каталога), вам стоит добавить их в индекс и осуществить первый коммит изменений. Добиться этого вы сможете запустив команду git add несколько раз, указав индексируемые файлы, а затем выполнив git commit :

$ git add *.c $ git add LICENSE $ git commit -m 'Initial project version'

Мы разберем, что делают эти команды чуть позже. Теперь у вас есть Git-репозиторий с отслеживаемыми файлами и начальным коммитом.

Клонирование существующего репозитория

Для получения копии существующего Git-репозитория, например, проекта, в который вы хотите внести свой вклад, необходимо использовать команду git clone . Если вы знакомы с другими системами контроля версий, такими как Subversion, то заметите, что команда называется «clone», а не «checkout». Это важное различие — вместо того, чтобы просто получить рабочую копию, Git получает копию практически всех данных, которые есть на сервере. При выполнении git clone с сервера забирается (pulled) каждая версия каждого файла из истории проекта. Фактически, если серверный диск выйдет из строя, вы можете использовать любой из клонов на любом из клиентов, для того, чтобы вернуть сервер в то состояние, в котором он находился в момент клонирования (вы можете потерять часть серверных хуков (server-side hooks) и т. п., но все данные, помещённые под версионный контроль, будут сохранены, подробнее об этом смотрите в разделе Установка Git на сервер главы 4).

Клонирование репозитория осуществляется командой git clone . Например, если вы хотите клонировать библиотеку libgit2 , вы можете сделать это следующим образом:

$ git clone https://github.com/libgit2/libgit2

Эта команда создаёт каталог libgit2 , инициализирует в нём подкаталог .git , скачивает все данные для этого репозитория и извлекает рабочую копию последней версии. Если вы перейдёте в только что созданный каталог libgit2 , то увидите в нём файлы проекта, готовые для работы или использования. Для того, чтобы клонировать репозиторий в каталог с именем, отличающимся от libgit2 , необходимо указать желаемое имя, как параметр командной строки:

$ git clone https://github.com/libgit2/libgit2 mylibgit

Эта команда делает всё то же самое, что и предыдущая, только результирующий каталог будет назван mylibgit .

В Git реализовано несколько транспортных протоколов, которые вы можете использовать. В предыдущем примере использовался протокол https:// , вы также можете встретить git:// или user@server:path/to/repo.git , использующий протокол передачи SSH. В разделе Установка Git на сервер главы 4 мы познакомимся со всеми доступными вариантами конфигурации сервера для обеспечения доступа к вашему Git репозиторию, а также рассмотрим их достоинства и недостатки.

#2 — Добавление файлов в репозиторий

#2 - Добавление файлов в репозиторий

В ходе урока вы познакомитесь с добавлением файлов в локальный репозиторий проекта. Вы изучите такие команды, как: git add, git commit, git status, а также познакомитесь с игнорированием файлов при помощи .gitignore файла.

Видеоурок

Для добавления файлов в локальное хранилище в Git используется несколько команд:

  • git add — добавление файлов в стадию ожидания;
  • git commit — добавление файлов в локальное хранилище;
  • git rm — отмена действий.

Получение статуса

Для отслеживания статуса всех файлов необходимо использовать команду git status .

Это одна из важнейших команд, так как система отслеживает изменения, а с ее помощью мы узнаем о результатах этого отслеживания. Если мы наберем git status в терминале, то система должна выдать следующее:

Добавление файлов

Перед добавлением файлов в локальное хранилище их необходимо подготовить. Для этого используется команда git add .

Через команду можно указать какие файлы необходимо добавить. Можно добавить всё, прописав git add . или git add -A , а также можно добавлять лишь некоторые файлы. Для их выбора можно воспользоваться различными командами:

Коммит

После подготовки файлов их необходимо отправить в локальное хранилище (выполнить коммит). Для этого используется команда git commit -m «Комментари» .

При коммите данных их необходимо комментировать, чтобы в дальнейшем каждое изменение в проекте было с комментарием (описанием действий).

Отмена действий

Если вы добавили файлы в стадию ожидания, но передумали и не хотите добавлять некоторые из них, то вам пригодиться команда git rm -cached «file» .

В ней укажите какой файл необходимо «выкинуть» из стадии ожидания на коммит.

Игнорирование файлов

Git имеет встроенную функцию .gitignore, с помощью которой мы можем предотвратить случайное попадание в git add ненужных файлов, папок и директорий. Очень часто в такой перечень попадают следующие данные:

  • Логи;
  • Артефакты систем сборки;
  • Папки node_modules в проектах node.js;
  • Папки, созданные IDE, например, Netbeans или IntelliJ;
  • Разнообразные заметки разработчика.

Работает функция .gitignore очень просто:

  • Создаем вручную файл под названием .gitignore и сохраняем его в директорию проекта.
  • Внутри файла перечисляем названия файлов/папок, которые нужно игнорировать, каждое с новой строки.
  • Файл .gitignore добавляем, коммитим и отправляем на сервер, как любой другой файл в проекте. Пример исключения перечисленных выше файлов выглядит так:
*.log build/ node_modules/ .idea/ my_notes.txt

Слэш обозначает игнорирование директорий и всего их содержимого, звездочка – шаблон.

Задание к уроку

Необходимо оформить подписку на проект, чтобы получить доступ ко всем домашним заданиям

Большое задание по курсу

Вам необходимо оформить подписку на сайте, чтобы иметь доступ ко всем большим заданиям. В задание входит методика решения, а также готовый проект с ответом к заданию.
PS: подобные задания доступны при подписке от 1 месяца

GitHub — как добавить файл/папку?

По стандартным примерам самого GitHub’a получилось создать файл README.md . Как в этом же репозитории, там же где и README.md создать еще один файл/папку? Я создал файл в этом репозитории ( test ) напр. style.css у себя на машине, выполнил команду git add style.css , но файл не добавился удаленно. Как это свести воедино? Что сделать, чтобы мой style.css появился в репозитории test на GitHub?

Отслеживать
23.4k 3 3 золотых знака 49 49 серебряных знаков 70 70 бронзовых знаков
задан 20 мар 2012 в 21:57
2,711 15 15 золотых знаков 54 54 серебряных знака 87 87 бронзовых знаков
Вот еще отличный материал и на русском языке. GitHowTo.
21 мар 2012 в 3:18
А почему не через git ?
– user181100
8 ноя 2015 в 10:01
Предположим что лень. Интересен чисто теоретико-практический вопрос)
8 ноя 2015 в 10:03
Да, и ещё, на битбакэте есть аналог gh-pages, и как там дело с загрузкой?
8 ноя 2015 в 10:08

На bitbucket можно создать сайтик с адресом <имя_пользователя>.bitbucket.org, но все страницы нужно будет верстать руками (т.е. никаких шаблонов, никакого тебе markdown, только html, css, js). Загрузка файлов — через mercurial или git (смотря какого типа репозиторий был создан). Инструкция (неофициальная): pages.bitbucket.org

8 ноя 2015 в 11:34

4 ответа 4

Сортировка: Сброс на вариант по умолчанию

git commit git push 

Вообще, начиная работать с какой-либо системой контроля версий, имеет смысл прочитать Quick Start Guide для ознакомления в целом и для того, чтобы узнать об основных функциях.

Для случая git можно начать с Git Howto и дальше уже пробежаться по референсам.

git commands

Отслеживать
28.8k 12 12 золотых знаков 59 59 серебряных знаков 118 118 бронзовых знаков
ответ дан 21 мар 2012 в 0:09
M. Williams M. Williams
23.5k 1 1 золотой знак 41 41 серебряный знак 58 58 бронзовых знаков

Текстовые файлы можно создавать через + рядом с именем текущей папки.

Бинарные закачивать нельзя (по крайней мере в текущей версии интерфейса).

UP: Github теперь поддерживает загрузку любых файлов напрямую через интерфейс.

Отслеживать
ответ дан 8 ноя 2015 в 10:31
user177221 user177221
про текстовые понятно. интересовало именно загрузка картинок без установки доп. утилит.
9 ноя 2015 в 15:16
Этот ответ был изначально дан к вопросу ru.stackoverflow.com/q/464690/181472
1 мар 2016 в 9:31

Файлы, чьё содержимое открывается в текстовых редакторах, можно создавать через веб-панель. Входим на свой репозиторий ( YourName/YourRepository.github.io ) — «New File» — копируем/вставляем содержимое файла — «Commit new file». Для создания папки необходимо создать файл, который будет в ней содержаться, см. гифку.

Буквально на днях в Github появилась возможность загрузки (не создания) файлов через веб-интерфейс. При заходе на свой репозиторий всё сразу будет видно: нужно перенести файлы в область большого прямоугольника, где написано «File uploading is now available» (или лишний раз нажать «Upload files» и перенести).

В первые дни после введения веб-загрузки имена изображений менялись на default.jpg (default.png, default.jpeg), но сейчас вроде бы с багом покончено: имена, заданные пользователем, остаются.

После внесения изменений в вебе не забывайте переносить их из репозитория на компьютер командой git pull . Спасибо.

Загрузка на Github через Web

Отслеживать
ответ дан 28 фев 2016 в 11:27
Саша Черных Саша Черных
4,306 14 14 золотых знаков 42 42 серебряных знака 93 93 бронзовых знака

Стоит также упомянуть о возможности создания и редактирования файлов на GitHub посредством сервиса prose.io . Преимущества:

  1. Русский язык интерфейса. Для переключения наведите курсор мыши под самую левую вкладку окна браузера, должно высветиться меню: Переключение на русский язык «Language» — выбираем русский
  2. Редактирование сразу при открытии файла. Не нужно дополнительно нажимать на кнопки вроде «Редактировать» или «Edit».
  3. Поиск при редактировании фрагмента текста с помощью Ctrl + F работает по всему файлу. В веб-редакторе ГитХаба так позволено искать только по 30 видимым в форме ввода и редактирования текста строкам.
  4. Поддержка Markdown — той самой удобной разметки, что используется на Stack Overflow. Справка о ней отображается при нажатии на вопросительный знак: Справка о Markdown на prose.io Если Вы не создаёте новый и не редактируете .md-файл, меню над формой ввода текста не появится, но о разметке всегда можно почитать, например, тут.
  5. Быстрое восстановление недавно удалённых файлов. Коммиты удалений отображаются справа, в «Последних событиях» буквами D в красном кружке. Нажимаем на имя удалённого файла левой кнопкой мыши — всё, он восстановлен. До восстановленияПосле восстановления

Недостаток — подвисания при сохранении коммитов после редактирования больших, за 1000 строк, файлов. Пару раз может всплыть окно «Внимание: Сценарий не отвечает»:

Сценарий не отвечает в prose.io

Поэтому для внесения мелких правок в увесистые файлы данный сервис лучше не использовать.

После коммитов в prose.io не забывайте переносить изменения из репозитория на компьютер командой git pull . Спасибо.

Как загрузить существующий проект на GitHub

GitHub — это облачный инструмент управления Git. Git —распределенная система управления версиями; это значит, что она хранит весь репозиторий и историю там, где вы их поместите. GitHub часто используется в бизнесе или в процессе разработки ПО в качестве управляемого хостинга для резервного копирования репозиториев. Однако GitHub также позволяет вам общаться с коллегами, друзьями, организациями и т.д.

В этом руководстве вы узнаете, как поместить проект, над которым вы работаете, на GitHub.

Требования

Чтобы инициализировать репозиторий и отправить его на GitHub, вам потребуется:

  • Бесплатная учетная запись GitHub
  • Установка git на вашем локальном компьютере. Инструкции вы найдете в мануале Разработка проектов с открытым исходным кодом: начало работы с Git

1: Создание репозитория GitHub

Войдите в GitHub и создайте новый пустой репозиторий. Инициализировать README или нет, решать вам. На самом деле это не имеет значения, потому что мы все равно переопределим все в этом репозитории.

Примечание: В этом руководстве мы используем условное имя пользователя GitHub (sammy) и репозитория (my-new-project). Все эти фиктивные данные нужно заменить своими данными.

2: Инициализация Git в папке проекта

Перейдите в папку, которую хотите добавить в репозиторий, и выполните в своем терминале следующие команды.

Инициализация репозитория Git

Убедитесь, что вы находитесь в корневом каталоге проекта, который хотите отправить на GitHub, и запустите:

Примечание: Если у вас уже есть инициализированный проект, можете пропустить эту команду.

Этот шаг создает в папке вашего проекта скрытый каталог .git. Система git распознает его и использует для хранения всех метаданных и истории версий для данного проекта.

Добавление файлов в индекс Git

Следующая команда укажет git, какие файлы включать в коммит. Аргумент -A (то есть –all) означает «включить все».

Коммит добавленных файлов

git commit -m ‘Added my project’

Команда git commit создает новый коммит со всеми добавленными файлами. Параметр -m (или –message) задает сообщение, которое будет включено в коммит в качестве объяснения для будущей работы. В этом случае мы ввели простое сообщение ‘Added my project’.

Добавление нового удаленного репозитория

Примечание: Помните, что вам нужно заменить имя пользователя и репозитория.

git remote add origin git@github.com:sammy/my-new-project.git

В git «remote» относится к удаленной версии того же репозитория, который обычно находится где-то на сервере (в данном случае на GitHub). «origin» — это стандартное имя, которое git по умолчанию присваивает удаленному серверу (таких у вас может быть несколько). Команда git remote add origin добавит URL-адрес удаленного сервера по умолчанию для этого репозитория.

Загрузка на GitHub

git push -u -f origin main

Флаг -u (или –set-upstream) устанавливает удаленный репозиторий origin в качестве апстрим-ссылки. Это позволяет позже выполнять команды git push и git pull без указания origin.

Флаг -f (или –force) автоматически перезапишет все в удаленном каталоге. Здесь мы используем его, чтобы перезаписать стандартный файл README, автоматически инициализированный GitHub.

Примечание: Если вы не включили README по умолчанию при создании проекта на GitHub, флаг -f вам не нужен, его можно удалить из команды.

Итоги

В результате весь процесс состоит из следующих команд:

git init
git add -A
git commit -m ‘Added my project’
git remote add origin git@github.com:sammy/my-new-project.git
git push -u -f origin main

Заключение

Мы успешно настроили удаленное отслеживание изменений кода в GitHub!

Читайте также:

  • Краткий справочник по Git
  • Создание pull-запроса на GitHub

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *