Каталог расширений

Популярные теги

3gp       avi       fb2       jpg       mp3       pdf      

Как добавить файлы в репозиторий git


Git и Github. Простые рецепты / Хабр

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

Система Git появилась, как средство управления исходными текстами в операционной системе Linux и завоевала множество поклонников в среде Open Source.

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

После того, как вы начали работу над проектом и написали какой-то работающий прототип, у вас появится желание сохранить результаты работы. Это так же может быть полезно в случае, если вы захотите продолжить работу на другом компьютере. Самое простое решение — это сохранить все на флешке. Этот вариант неплохо работает, но если есть подключение к интернету (а сейчас у кого его нет), то удобно воспользоваться системами Git/Github.

В этой статье будут описаны базовые сценарии использования систем Git/Github при работе над проектом в среде Linux с помощью командной строки. Все примеры проверялись на системе с Linux Ubuntu 14.04 и Git 1.9.1. Если вы пользуетесь другим дистрибутивом, то возможны отличия.

Создание локального репозитория

Предположим, что ваш проект находится в папке /home/user/project. Перед тем, как сохранять исходники, можно посмотреть, нет ли временных файлов в папке с проектом и по возможности их удалить.

Для просмотра папки удобно воспользоваться командой tree, которая покажет не только содержимое каждой папки, но и древовидную структуру директорий.

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

Переходим в папку с проектом /home/user/project:

cd /home/user/project 

И показываем список файлов с расширением .pyc:
find . -name *.pyc 

Эта команда выведет список всех файлов с расширением .pyc в текущей директории и в ее поддиректориях. Для удаления найденных файлов, достаточно добавить ключ -delete к этой команде:
find . -name *.pyc -delete 

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

Создадим локальный репозиторий в папке с проектом:

git init 

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

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



git add readme 

После выполнения команды, файл readme будет добавлен в систему управления версий (конечно если он уже был то этого в проекте). При добавлении файла генерируется хеш значение, которое выглядит примерно так:
9f2422325cef705b7682418d05a538d891bad5c8 

Добавленные файлы хранятся в папке .git/objects/xx/yyyyyyyy, при этом первые 2 цифры хеша ипользуются для указания директории, а остальное хеш значение является именем файла. Наш добавленный файл будет находится здесь:
.git/objects/9f/2422325cef705b7682418d05a538d891bad5c8 

Что легко увидеть с помощью команды:
ls .git/objects 

Сам файл является архивом, который легко распаковать и вывести на экран, указав полное значение хеша.
git cat-file -p 9f2422325cef705b7682418d05a538d891bad5c8 

Для того, чтобы добавить все файлы из текущей директории введите:
git add . 

Если нужно добавить файлы из текущей директории и из всех поддиректориев, то используйте:
git add --all 

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

Например, если в в файл .gitignore добавить следующую строчку *.pyc, то все файлы с расширением .pyc не будут добавляться в репозиторий.

После добавления файлов, все изменения находятся в так называемой staging (или cached) area. Это некоторое временнное хранилище, которое используется для накопления изменений и из которого создаются собственно версии проектов (commit).

Для просмотра текущего состояния можно воспользоваться командой:

git status 

После выполнения команды мы увидим, что в stage area находится наш файл:
new file: readme 

Если вы продолжите вносить изменения в файл readme, то после вызова команды git status вы увидите две версии файла.
new file: readme modified: readme 

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

Можно отменить добавления файла readme в staging area с помощью команды:
git rm --cached readme 

После выполнения команды, файл readme отметится, как неизмененный системой.
Создание версии проекта

После того, как мы добавили нужные файлы в staging area мы можем создать версию проекта. С помощью команды:
git commit -m "comment" 

Каждая новая версия сопровождается комментарием.

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

.git/objects/9f/2422325cef705b7682418d05a538d891bad5c8 .git/objects/65/7ab4c07bd3914c7d66e4cb48fe57f5c3aa7026 .git/objects/da/c6721c3b75fcb3c9d87b18ba4cef2e15e0a3d3 

Посмотрим, что внутри:
git cat-file -t 657ab4c07bd3914c7d66e4cb48fe57f5c3aa7026 

Ключ -t показывает тип объекта. В результате мы видим:
commit 

Для второго объекта:
git cat-file -t dac6721c3b75fcb3c9d87b18ba4cef2e15e0a3d3 

Результат:
tree 

Для самого первого файла:
git cat-file -t 9f2422325cef705b7682418d05a538d891bad5c8 

Мы видим:
blob 

Если мы будем дальше изучать содержимое этих файлов, то обнаружим древовидную структуру. От каждого коммита можно по ссылкам пройти по всем измененным файлам. Для практического применения это не очень нужно, но возможно так будет легче понять, что происходит при работе с системой Git.

Самую первую версию отменить нельзя. Ее можно только исправить. Если вы хотите добавить изменения в последнюю версию, то после выполнения команды commit, добавляете необходимые изменения и вызываете:

git commit -m "comment" --amend 

Или так:
git commit --amend --no-edit 

Ключ --no-edit нужен, чтобы не вводить заново комментарий.

Можно просмотреть изменения, которые вы внесли последним коммитом:

git show 

Или так:
git show --name-only 

Ключ --name-only нужен, чтобы показывать только имена измененный файлов. Без него по каждому измененнному файлу будет выдан список всех изменений.

Если вы продолжили работать и изменили только те файлы, которые были уже добавлены в систему командой git add, вы можете сделать коммит одной командой:

git commit -a -m "comment" 

Для просмотра списка всех коммитов, воспользуйтесь командой:
git log 

Или так:
git log --oneline 

Ключ --oneline нужен, чтобы уменьшить количество информации выдаваемой на экран. С этим ключем каждый коммит показывается в одну строчку. Например:
2b82e80 update 657ab4c first 

Для того, чтобы просмотреть изменения по конкретному коммиту, достаточно в команду git show добавить хеш значение коммита, которое можно получить с помощью предыдущей команды.
git show 657ab4c 

Для отмены последнего коммита (кроме самого первого) можно воспользоваться следующей командой:
git reset HEAD~1 

Для того чтобы удалить все файлы в папке, которые не относятся к проекту и не сохранены в репозитории, можно воспользоваться командой:
git clean -df 

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

До текущего момента мы работали с локальным репозиторием, который сохранялся в папке на компьютере. Если мы хотим иметь возможность сохранения проекта в интернете, создадим репозиторий на Github. Для начала нужно зарегистрироваться на сайте github.com под именем myuser (в вашем случае это может быть любое другое имя).

После регистрации нажимаем кнопочку "+" и вводим название репозитория. Выбираем тип Public (репозиторий всегда Public для бесплатной версии) и нажимаем Create.

В результате мы создали репозиторий на сайте Github. На экране мы увидим инструкцию, как соединить наш локальный репозиторий со вновь созданным. Часть команд нам уже знакома.

Добавляем удаленный репозиторий (по протоколу SSH) под именем origin (вместо origin можно использовать любое другое имя).

git remote add origin [email protected]:myuser/project.git 

Можем просмотреть результат добавления с помощью команды:
git remote -v 

Если все было правильно сделано, то увидим:
origin [email protected]:myuser/project.git (fetch) origin [email protected]:myuser/project.git (push) 

Для того, чтобы отменить регистрацию удаленного репозитария введите:
git remote rm origin 

Это может понадобиться, если вы захотите поменять SSH доступ на HTTPS. После этого можно добавить его опять, например под именем github и протоколом HTTPS.
git remote add github https://github.com/myuser/project.git 

Следующей командой вы занесете все изменения, которые были сделаны в локальном репозитории на Github.
git push -u github master 

Ключ -u используется для того, чтобы установить связь между удаленным репозиторием github и вашей веткой master. Все дальнейшие изменения вы можете переносить на удаленный репозиторий упрощенной командой.
git push 

Перенос репозитория на другой компьютер

После того, как репозиторий был создан на Github, его можно скопировать на любой другой компьютер. Для этого применяется команда:
git clone https://github.com/myuser/project.git 

Результатом выполнения этой команды будет создание папки project в текущем каталоге. Эта папка также будет содержать локальный репозиторий (то есть папку .git).

Так же можно добавить название папки, в которой вы хотите разместить локальный репозиторий.

git clone https://github.com/myuser/project.git <myfolder> 

Работа с одним репозиторием с разных компьютеров

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

Для получения обновлений с удаленного репозитория воспользуйтесь командой:

git pull 

Если вы изменили ваши локальные файлы, то команда git pull выдаст ошибку. Если вы уверены, что хотите перезаписать локальные файлы, файлами из удаленного репозитория то выполните команды:
git fetch --all git reset --hard github/master 

Вместо github подставьте название вашего удаленного репозитория, которое вы зарегистрировали командой git push -u.

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

git push 

В случае, если в удаленном репозитории лежат файлы с версией более новой, чем у вас в локальном, то команда git push выдаст ошибку. Если вы уверены, что хотите перезаписать файлы в удаленном репозитории несмотря на конфликт версий, то воспользуйтесь командой:
git push -f 

Иногда возникает необходимость отложить ваши текущие изменения и поработать над файлами, которые находятся в удаленном репозитории. Для этого отложите текущие изменения командой:
git stash 

После выполнения этой команды ваша локальная директория будет содержать файлы такие же, как и при последнем коммите. Вы можете загрузить новые файлы из удаленного репозитория командой git pull и после этого вернуть ваши изменения которые вы отложили командой:
git stash pop 

Заключение

Мы рассмотрели базовые сценарии работы с системами Git и Github. Каждая приведенная выше команда имеет значительно больше ключей и соответственно возможностей. Постепенное их изучение даст вам возможность легко оберегать свои иходники и больше концентрироваться непосредственно на разработке.

Добавление изменений в Git и GitHub

Копирование репозитория с GitHub

Для выполнения заданий вы будете использовать приватный репозиторий, который создан на GitHub.

Для работы с ним локально, его нужно скопировать. Для этого используется команда git clone:

$ git clone ssh://[email protected]/pyneng/online-4-natasha-samoylenko.git Cloning into 'online-4-natasha-samoylenko'... remote: Counting objects: 241, done. remote: Compressing objects: 100% (191/191), done. remote: Total 241 (delta 43), reused 239 (delta 41), pack-reused 0 Receiving objects: 100% (241/241), 119.60 KiB | 0 bytes/s, done. Resolving deltas: 100% (43/43), done. Checking connectivity... done. 

В этой команде вам нужно сменить имя репозитория “online-4-natasha-samoylenko” на свой репозиторий.

В итоге, в текущем каталоге, в котором была выполнена команда git clone, появится каталог с именем равным имени репозитория. В моем случае - online-4-natasha-samoylenko.

Если вы перейдете в этот каталог, то увидите в нем содержимое репозитория на GitHub.

Работа с репозиторием

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

  • был создан каталог .git
  • скачаны все данные репозитория
  • скачаны все изменения, которые были в репозитории
  • ваш репозиторий на GitHub настроен как remote для этого репозитория

Это значит, что теперь у вас готов полноценный репозиторий Git, в котором вы можете работать.

Обычно, последовательность работы будет такой:

  • перед началом работы, синхронизируете локальное содержимое с GitHub командой git pull (синхронизация из GitHub в локальный репозиторий)
  • редактируете какие-то файлы репозитория
  • добавляете их в staging командой git add
  • делаете commit с помощью git commit
  • когда вы готовы закачать локальные изменения на GitHub, делаете git push

Если вы работаете с заданиями с работы и дома, надо не забывать первый и последний шаг:

  • первый шаг - обновляет ваш локальный репозиторий на виртуалке
  • последний шаг - загружает изменения на GitHub

Синхронизация из GitHub в локальный репозиторий

Все команды выполняются внутри каталога репозитория (в примере выше - online-4-natasha-samoylenko)

Команда git pull:

Если содержимое локального репозитория одинаково с удаленным репозиторием - GitHub, вывод будет таким:

$ git pull Already up-to-date. 

Если что-то было изменено, вывод будет примерно таким:

$ git pull remote: Counting objects: 5, done. remote: Compressing objects: 100% (1/1), done. remote: Total 5 (delta 4), reused 5 (delta 4), pack-reused 0 Unpacking objects: 100% (5/5), done. From ssh://github.com/pyneng/online-4-natasha-samoylenko 89c04b6..fc4c721 master -> origin/master Updating 89c04b6..fc4c721 Fast-forward exercises/03_data_structures/task_3_3.py | 2 ++ 1 file changed, 2 insertions(+) 

Добавление новых файлов или изменений в существующих файлах

Добавление всех новых файлов или изменений в существующих:

Если необходимо добавить конкретный файл (в данном случае - README.md):

Commit

При выполнении commit обязательно надо указать сообщение. Будет лучше, если сообщение будет со смыслом, а не просто “update” или подобное:

$ git commit -m "Сделал задания 4.1-4.3" 

Push на GitHub

Для загрузки всех локальных изменений на GitHub, используется git push:

$ git push origin master Counting objects: 5, done. Compressing objects: 100% (5/5), done. Writing objects: 100% (5/5), 426 bytes | 0 bytes/s, done. Total 5 (delta 4), reused 0 (delta 0) remote: Resolving deltas: 100% (4/4), completed with 4 local objects. To ssh://[email protected]/pyneng/online-4-natasha-samoylenko.git fc4c721..edcf417 master -> master 

Перед выполнением git push, можно выполнить команду $ git log -p origin/master.. - она покажет какие изменения вы собираетесь добавлять в свой репозиторий на GitHub.

Как добавить файлы и папки в репозитории GitHub?

вы можете добавлять файлы с помощью git add, например git add README, git add <folder>/*, или даже git add *

затем использовать git commit -m "<Message>" для фиксации файлов

наконец-то git push -u origin master для нажимаем файлы.

когда вы делаете изменения run git status который дает вам список измененных файлов, добавьте их с помощью git add * для всего или вы можете указать каждый файл по отдельности, то git commit -m <message> и наконец, git push -u origin master

пример-скажем, вы создали файл README, запустив git status дает вам

$ git status # On branch master # Untracked files: # (use "git add <file>..." to include in what will be committed) # # README 

выполнить git add README, файлы расположены для фиксации. Затем запустите git status опять же, он должен дать вам-файлы были добавлены и готовы к фиксации.

$ git status # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # new file: README # nothing added to commit but untracked files present (use "git add" to track) 

затем запустите git commit -m 'Added README'

$ git commit -m 'Added README' [master 6402a2e] Added README 0 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 README 

наконец, git push -u origin master нажать на удаленную ветку master для репозитория origin.

$ git push -u origin master Counting objects: 4, done. Delta compression using up to 2 threads. Compressing objects: 100% (2/2), done. Writing objects: 100% (3/3), 267 bytes, done. Total 3 (delta 1), reused 0 (delta 0) To [email protected]:xxx/xxx.git 292c57a..6402a2e master -> master Branch master set up to track remote branch master from origin. 

файлы были успешно перемещены в удаленный репозиторий.

под управлением git pull origin master чтобы убедиться, что вы впитали любые изменения вверх по течению

$ git pull origin master remote: Counting objects: 12, done. remote: Compressing objects: 100% (4/4), done. remote: Total 8 (delta 4), reused 7 (delta 3) Unpacking objects: 100% (8/8), done. From xxx.com:xxx/xxx * branch master -> FETCH_HEAD Updating e0ef362..6402a2e Fast-forward public/javascript/xxx.js | 5 ++--- 1 files changed, 2 insertions(+), 3 deletions(-) create mode 100644 README 

если вы не хотите объединять восходящие изменения с локальным репозиторием, запустите git fetch чтобы получить изменения, а затем git merge для слияния изменений. git pull это просто комбинация fetch и merge.

я лично использовал gitimmersion -http://gitimmersion.com/ чтобы добраться до кривой на git, ее пошаговое руководство, если вам нужна документация и помощь

Отправка файлов в удалённый репозиторий на GitHub » Nikulux

27 Сен

Вы сделали правки в своём Великом проекте и хотите их отправить на удалённый репозиторий, чтобы все давились слюной от Вашего талантища.
Рассмотрим пример с применением GitHub.

Для того, чтобы отправить свои изменения на удалённый репозиторий Github необходимо предварительно создать аккаунт на этом самом Github и связать свой локальный репозиторий (папка на Вашем компьютере) с удалённым репозиторием.

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

Если вышеперечисленное сделано, то можно приступать к отправке.

 

Отправка новых файлов на удалённый репозиторий

  1. Перейдите в директорию (папку) с привязанным репозиторием
  2. Поместите в данную директорию свои файл/файлы, которые хотите отправить на удалённый репозиторий GitHub
  3. Кликните правой кнопкой мыши и нажмите на «Git Bash Here»
  4. Откроется окно консоли. Теперь переходим к командам для отправки на удалённый репозиторий. Введите команду для добавления директории в список отправки

    и нажмите клавишу Enter, в консоле ничего появится не должно;
  5. Следующим шагом добавим файл для добавления его в список отправки

    и нажмите клавишу Enter, в консоле ничего появится не должно;
  6. Теперь проверим какие файлы и директории были добавлены, да и вообще убедимся в каких частях нашего проекта были изменения. Введите команду

    и нажмите клавишу Enter, в консоле появится список на отправление
    Появились новые файлы: один новый файл в корне проекта, четыре новых файла в директории newFiles;
  7. Теперь необходимо создать текстовую запись (можно сказать, что это запись в журнале изменений) о наших изменениях. Называется этот процесс «создание коммита» или «create commit«. Помните, каждый коммит должен быть атомарен, то есть каждый коммит должен отражать одно изменение в проекте. Хорошей практикой является следующая аксиома: «сделал одну правку в проекте — закоммитил и отправил» и таким образом вносить все правки в свой проект. Не беспокойтесь, что коммитов из-за этого может быть много, это не страшно, страшно тогда, когда в ваших коммитах невозможно разобраться. Текст для коммитов должен быть осмысленным и отображать суть внесённых правок. С коммитами можно провести такую ассоциацию: «Коммит — это запись в журнале изменений проекта. Записывается кто внёс правку, какую человек внёс правку и дату внесения изменения». По этим самим коммитам можно вернуться к определённому моменту развития проекта и работать от этого момента, поэтому каждый коммит должен отражать одно изменение. Жёстким требованием это не является (бывают разные случаи, например нет возможности отправить), но рекомендуется поступать именно так.
    Закомитимся
    Введите следующую команду для того, чтобы создать коммит

    git commit -m "Отправка тестовых текстовых файлов"

    git commit -m "Отправка тестовых текстовых файлов"


    и нажмите клавишу Enter
    Появилось сообщение о создании новых элементов;
  8. Отправляем в репозиторий GitHub, то есть «пушимся»

    файлы благополучно отправлены. Подобное сообщение будет и с отправкой на Ваш репозиторий.
  9. Убедимся, что всё так. Зайдите на страницу своего репозитория на GitHub
    Обратите внимание на выделенные области, появились новый файл и одна директория, которая содержит в себе четыре файла. Также в заголовке прописано какой был последний коммит в данный репозиторий;

 

Таким не хитрым образом мы разобрались с «отправка файлов в удалённый репозиторий на GitHub»!

Как загрузить файлы на удаленный репозиторий. Работа с GitHub

Mariia Kholodnitska 30.07.2019 5 19300 на прочтение 5 минут


Ранее в статьях мы рассматривали как установить, настроить и работать с локальным репозиторием Git. А в этой статье напомним как заливать файлы на удаленный репозиторий и основной функционал и возможности при работе в аккаунте GitHub.

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

Начнем с регистрации на GitHub. Переходим по ссылке https://github.com/, нажимаем на ‘Sign up’ и проходим регистрацию.

После регистрации  перейдем к созданию и настройке репозитория. Кликаем на значок  ‘ +’ и в открытом окне выбираем  ‘New repository’ для создания нового репозитория.

Заполняем поле и добавляем конфигурации к репозиторию.

Note: Возможность использовать приватный репозиторий бесплатно до 5 соавторов. Далее нужно оплачивать по прайсу в зависимости от тарифного плана.

Также Вы можете поставить галочку напротив “Initialize this repository with a README”, чтобы создать файл readme.md. В файле readme.md зачастую пишут общую ознакомитильную информацию о проекте, требования к окружению, что нужно сделать перед установкой, как установить, создатели проекта, документация, ссылки и много другое. Этот файл оформляется на языке разметки Markdown (ознакомится с синтаксисом языка можно на странице GitHub - https://guides.github.com/features/mastering-markdown/ ).

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

Если Вы еще не подключили удаленный репозиторий, то делаем это командой:

git remote add test2 URL

где test2 – названия Вашего репозитория, 

URL – URL-адрес Вашего репозитория.

Чтобы посмотреть все подключенные репозитории воспользуйтесь командой:

git remote -v

   Как видим по скрину репозиторий test2 удачно добавился.


     Для подключения можно использовать HTTPS и SSH протоколы. Найти эти поля можно выполнив такие действия: кликаем на иконку с Вашим профилем — Your repositories — и выбираем нужный репозиторий. В открытом окне переходим на ‘Clone or dowland’ и просто копируем  ссылку с поля: соответственно либо HTTPS либо SSH доступом. Как Вы поняли по названию, эту ссылку можно использовать и в других целях, например, для клонирования репозитория.

Выбираем нужный протокол, для использования SSH нужно сгенерировать и добавить  SSH keys, как это делать можно узнать в нашей статье ‘Генерация и добавления SSH ключа для подключения к удаленному репозиторию GitHub’.

 

Теперь все готово к добавлению файлов в удаленный репозиторий. В качестве примера, будем переносить файлы этого локального репозитория на GitHub.

Для этого нужно воспользоваться командой:

git push URL

Переходим на GitHub и видим, что все наши файлы удачно переместились.

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

Если Вы ведете свой проект на GitHub, значит у Вас есть актуальная текущая версия своего проекта под рукой.Ну конечно же, если дело идет о Хостинге, лучше хранить свои данные не в одном месте и всегда иметь резервные копии. На любом тарифе Хостинга мы делаем бекапы файлов и БД каждый день. С ГиперХост Вы можете быть уверенным, что Ваш проект в надежных руках.

Добавление, удаление и переименование файлов в репозитории

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

Добавление файлов в git репозиторий

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

> git init
 

Создайте в каталоге файл README.md любым удобным для вас способом, мы сделаем это с помощью команды touch.

> touch README.md
 

Теперь проверим состояние отслеживаемой директории.

> git status
 On branch master
 
 Initial commit
 
 Untracked files:
 (use "git add <file>..." to include in what will be committed)
 
 README.md
 
 nothing added to commit but untracked files present (use "git add" to track)
 

Как вы можете видеть: в рабочей директории есть один неотслеживаемый файл README.md. Git нам подсказывает, что нужно сделать для того, чтобы начать отслеживать изменения в файле README.md: необходимо выполнить команду git add, сделаем это.

> git add README.md
 

Посмотрим ещё раз на состояние.

> git status
 On branch master
 
 Initial commit
 
 Changes to be committed:
 (use "git rm --cached <file>..." to unstage)
 
 new file: README.md
 

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

> git commit -m "add README.md file"
 [master (root-commit) 0bb6c94] add README.md file
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 README.md
 

Теперь в рабочей директории и в stage нет объектов, информацию об изменении которых необходимо внести в репозиторий.

> git status
 On branch master
 nothing to commit, working tree clean
 

В репозиторий был сделан один коммит.

> git log --oneline
 0bb6c94 add README.md file
 

Удаление файлов из git репозитория и из stage

Удаление файла из stage

Вначале разберемся со stage. Создадим ещё один файл.

> touch main.c
 

“Отправим” файл main.c в stage.

> git add main.c
 

Внесем изменения в README.md.

> echo "# README" > README.md
 

Информацию об этом также отправим в stage.

> git add README.md
 

Посмотрим на состояние stage.

> git status
 On branch master
 Changes to be committed:
 (use "git reset HEAD <file>..." to unstage)
 
 modified: README.md
 new file: main.c
 

Если нам необходимо убрать из stage, какой-то из этих файлов (main.c или README.md), то для этого можно воспользоваться командой git –rm cashed <filename>, сделаем это для файла main.c.

> git rm --cached main.c
 rm 'main.c'
 

Теперь посмотрим на состояние рабочей директории и stage.

> git status
 On branch master
 Changes to be committed:
 (use "git reset HEAD <file>..." to unstage)
 
 modified: README.md
 
 Untracked files:
 (use "git add <file>..." to include in what will be committed)
 
 main.c
 

Видно, что изменения в файле README.md готовы для коммита, а вот файл main.c перешел в состояние – неотслеживаемый. Отправим main.c в stage и, после этого, сделаем коммит в репозиторий.

> git add main.c
 > git commit -m "add main.c and do some changes in README.md"
 [master 49049bc] add main.c and do some changes in README.md
 2 files changed, 1 insertion(+)
 create mode 100644 main.c
 

Удаление файлов из git репозитория

Удалить файл из репозитория можно двумя способами: первый – удалить его из рабочей директории и уведомить об этом git; второй – воспользоваться средствами git. Начнем с первого способа. Для начала посмотрим, какие файлы у нас хранятся в репозитории.

> git ls-tree master
 100644 blob 7e59600739c96546163833214c36459e324bad0a README.md
 100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 main.c
 

Удалим файл main.c из рабочей директории.

> rm main.c
 > ls
 README.md
 

Уведомим об этом систему git.

> git rm main.c
 rm 'main.c'
 

Вместо команды git rm можно использовать git add, но само слово add в данном случае будет звучать несколько неоднозначно, поэтому лучше использовать rm. На данном этапе еще можно вернуть все назад с помощью команды git checkout — <filename>, в результате, в нашу рабочую директорию будет скопирован файл из репозитория. Создадим коммит, фиксирующий удаление файла.

> git commit -m "remove main.c"
 [master d4e22ae] remove main.c
 1 file changed, 0 insertions(+), 0 deletions(-)
 delete mode 100644 main.c
 

Теперь в репозитории остался только один файл README.md.

> git ls-tree master
 100644 blob 7e59600739c96546163833214c36459e324bad0a README.md
 

Второй способ – это сразу использовать команду git rm без предварительного удаления файла из директории. Вновь создадим файл main.c и добавим его в репозиторий.

> touch main.c
 > git add main.c
 > git commit -m "add main.c file"
 [master 6d93049] add main.c file
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 main.c
 > git ls-tree master
 100644 blob 7e59600739c96546163833214c36459e324bad0a README.md
 100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 main.c
 

Удалим файл из репозитория.

> git rm main.c
 rm 'main.c'
 
 > git commit -m "deleted: main.c file"
 [master ba7d027] deleted: main.c file
 1 file changed, 0 insertions(+), 0 deletions(-)
 delete mode 100644 main.c
 

Файла main.c больше нет в репозитории.

> git ls-tree master
 100644 blob 7e59600739c96546163833214c36459e324bad0a README.md
 

Его также нет и в рабочем каталоге.

> ls
 README.md
 

Удалите файл README.md из репозитория самостоятельно.

Переименование файлов в git репозитории

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

Первый способ. Создадим файл test_main_file.c и добавим его в репозиторий.

> touch test_main_file.c
 
 > git add test_main_file.c
 
 > git commit -m "add test_main_file.c"
 [master 6cf53ac] add test_main_file.c
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 test_main_file.c
 

Содержимое репозитория после этого будет выглядеть так.

> git ls-tree master
 100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 test_main_file.c
 

Переименуем его на test_main.c.

Сделаем это в рабочей директории.

> mv test_main_file.c test_main.c
 

Теперь отправим изменение в репозиторий.

> git add .
 > git commit -m "Rename test_main_file.c"
 [master 79528c4] Rename test_main_file.c
 1 file changed, 0 insertions(+), 0 deletions(-)
 rename test_main_file.c => test_main.c (100%)
 

В репозитории и в рабочей директории будет находится только файл test_main.c.

> git ls-tree master
 100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 test_main.c
 
 > ls
 test_main.c
 

Второй способ.

В рамках второго способа рассмотрим работу с командой git mv. Переименуем файл test_main.c в main.c. Текущее содержимое репозитория и рабочего каталога.

> git ls-tree master
 100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 test_main.c
 > ls
 test_main.c
 

Переименуем файл test_main.c на main.c средствами git.

> git mv test_main.c main.c
 
 > git commit -m "Rename test_main.c file"
 [master c566f0e] Rename test_main.c file
 1 file changed, 0 insertions(+), 0 deletions(-)
 rename test_main.c => main.c (100%)
 

Имя файла изменилось как в репозитории так и в рабочем каталоге.

> git ls-tree master
 100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 main.c
 
 > ls
 main.c
 

Отличный курс по git  делают ребята из GeekBrains, найдите в разделе “Курсы” курс “Git. Быстрый старт”, он бесплатный!

<<<Часть 7. Поговорим о HEAD и tree-ish   Часть 9. Как удалить коммит в git?>>>

Добавление файла в репозиторий с помощью командной строки

Документы GitHub
  • Все продукты
  • GitHub.com
    • Начиная
      • Быстрый старт
        • Настроить Git
        • Создать репо
        • Форк репо
        • Быть социальным
      • Изучение GitHub
        • Продукты GitHub
        • Изучение выпусков раннего доступа с предварительным просмотром функций
        • Типы аккаунтов GitHub
        • Часто задаваемые вопросы об изменениях в планах GitHub
        • GitHub CLI
        • GitHub Desktop
        • GitHub для мобильных устройств
        • Разрешения на доступ на GitHub
        • Глоссарий GitHub
        • Шпаргалка по Git
        • Учебные ресурсы Git и GitHub
      • Регистрация на GitHub
        • Зарегистрируйтесь для новой учетной записи GitHub
        • Подтверждение адреса электронной почты
        • Настройка пробной версии GitHub Enterprise Cloud
        • Настройка пробной версии GitHub Enterprise Server
      • Изучение проектов на GitHub
        • Поиск способов внести свой вклад в открытый исходный код на GitHub
        • Сохранение репозиториев со звездочками
        • Следуя за людьми
      • Использование GitHub
        • Поддерживаемые браузеры
        • Устранение проблем с подключением
        • Горячие клавиши
    • Учетные записи пользователей
      • Управление настройками учетной записи пользователя
        • О вашей личной панели
        • Управление настройками вашей темы
        • Изменение вашего имени пользователя GitHub
.

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

Документы GitHub
  • Все продукты
  • GitHub.com
    • Начиная
      • Быстрый старт
        • Настроить Git
        • Создать репо
        • Форк репо
        • Быть социальным
      • Изучение GitHub
        • Продукты GitHub
        • Изучение выпусков раннего доступа с предварительным просмотром функций
        • Типы аккаунтов GitHub
        • Часто задаваемые вопросы об изменениях в планах GitHub
        • GitHub CLI
        • GitHub Desktop
        • GitHub для мобильных устройств
        • Разрешения на доступ на GitHub
        • Глоссарий GitHub
        • Шпаргалка по Git
        • Учебные ресурсы Git и GitHub
      • Регистрация на GitHub
        • Зарегистрируйтесь для новой учетной записи GitHub
        • Подтверждение адреса электронной почты
        • Настройка пробной версии GitHub Enterprise Cloud
        • Настройка пробной версии GitHub Enterprise Server
      • Изучение проектов на GitHub
        • Поиск способов внести свой вклад в открытый исходный код на GitHub
        • Сохранение репозиториев со звездочками
        • Следуя за людьми
      • Использование GitHub
        • Поддерживаемые браузеры
        • Устранение проблем с подключением
        • Горячие клавиши
    • Учетные записи пользователей
      • Управление настройками учетной записи пользователя
        • О вашей личной панели
        • Управление настройками вашей темы
        • Изменение вашего имени пользователя GitHub
        • Объединение нескольких учетных записей пользователей
.

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

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
.

Добавление существующего проекта в GitHub с помощью командной строки

Документы GitHub
  • Все продукты
  • GitHub.com
    • Начиная
      • Быстрый старт
        • Настроить Git
        • Создать репо
        • Форк репо
        • Быть социальным
      • Изучение GitHub
        • Продукты GitHub
        • Изучение выпусков раннего доступа с предварительным просмотром функций
        • Типы аккаунтов GitHub
        • Часто задаваемые вопросы об изменениях в планах GitHub
        • GitHub CLI
        • GitHub Desktop
        • GitHub для мобильных устройств
        • Разрешения на доступ на GitHub
        • Глоссарий GitHub
        • Шпаргалка по Git
        • Учебные ресурсы Git и GitHub
      • Регистрация на GitHub
        • Зарегистрируйтесь для новой учетной записи GitHub
        • Подтверждение адреса электронной почты
        • Настройка пробной версии GitHub Enterprise Cloud
        • Настройка пробной версии GitHub Enterprise Server
      • Изучение проектов на GitHub
        • Поиск способов внести свой вклад в открытый исходный код на GitHub
        • Сохранение репозиториев со звездочками
        • Следуя за людьми
      • Использование GitHub
        • Поддерживаемые браузеры
        • Устранение проблем с подключением
        • Горячие клавиши
    • Учетные записи пользователей
      • Управление настройками учетной записи пользователя
        • О вашей личной панели
        • Управление настройками вашей темы
.

Добавить все удаленные файлы в коммит с помощью git

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
.

Запустить новый репозиторий git

Ваш первый инстинкт, когда вы начинаете делать что-то новое, должен быть git init . Вы начинаете писать новую статью, вы пишете немного кода для компьютерного моделирования, вы возитесь с некоторыми новые данные… что угодно : думаю git init .

Новое репо с нуля

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

  • Создайте каталог для хранения проекта.
  • Зайдите в новый каталог.
  • Введите git init .
  • Напишите код.
  • Введите git add , чтобы добавить файлы (см. типичная страница использования).
  • Введите git commit .

Первый файл, который нужно создать (добавить и зафиксировать), вероятно, является ReadMe файл в виде обычного текста или с Markdown, описывающий проект.

Markdown позволяет добавить небольшую разметку текста, например гиперссылки, полужирный / курсив или для обозначения кода моноширинным шрифтом шрифт .Markdown легко конвертируется в HTML для просмотра в сети браузер, и GitHub сделает это за вас автоматически.

Новое репо из существующего проекта

Допустим, у вас есть существующий проект, который вы хотите отслеживать. с git.

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

Подключаем к github

Теперь у вас есть локальный репозиторий git. Вы можете использовать git локально, например это, если хотите. Но если вы хотите, чтобы у этой вещи был дом на github, сделайте следующее.

  • Зайдите на github.
  • Войдите в свою учетную запись.
  • Нажмите кнопку нового репозитория в в правом верхнем углу.У вас будет возможность инициализировать репозиторий с помощью README файл, а я нет.
  • Нажмите кнопку «Создать репозиторий».

Теперь следуйте второму набору инструкций: «Подтолкнуть существующий хранилище… »

  $ git удаленное добавление источника [email protected]: имя пользователя / новое_репо $ git push -u мастер происхождения  

На самом деле в первой строке инструкций написано

  $ git удаленное добавление источника https://github.com/username/new_repo  

Но я использую git @ github.com: username / new_repo , а не https://github.com/username/new_repo , поскольку бывший предназначен для использования с ssh (если вы настроили ssh как Я упомянул в «Ваш первый раз», тогда вы не будете нужно вводить пароль каждый раз, когда вы отправляете что-то в github). Если вы используете последнюю конструкцию, вам нужно будет ввести свой github пароль каждый раз, когда вы нажимаете на github.

Далее : добавить в чей-то репозиторий

.

Смотрите также