Git добавить все файлы
В предыдущем уроке по созданию репозитория Git мы научились создавать новый репозиторий git для проекта. Теперь, когда у нас есть проект Git, пришло время начать работать и с ним. Проект Git можно рассматривать как состоящий из трех частей:
- Рабочий каталог: локальный репозиторий, где вы будете выполнять всю работу, такую как создание, редактирование, удаление и организация файлов проекта.
- Промежуточная область: отслеживаемый локальный репозиторий, где вы будете перечислять изменения, внесенные в рабочий каталог.
- Репозиторий: удаленный репозиторий, в котором Git постоянно хранит изменения в виде различных версий проекта.
Эта статья полностью посвящена работе с локальным репозиторием и отслеживаемыми / не отслеживаемыми изменениями. Мы будем охватывать следующие команды git:
- Git add
- Git status
- Git remove
Прежде чем использовать вышеперечисленные команды, мы должны создать некоторые файлы в проекте репозитория git.
После этого репозиторий git будет выглядеть следующим образом:
Git Status
Git Status — это еще одна обязательная команда, которая возвращает информацию о текущем состоянии репозитория. Например, список измененных файлов, список отслеживаемых изменений на промежуточном этапе, неотслеживаемые изменения на локальном уровне и информация о текущей ветви и коммитах.
- Промежуточная область: Git имеет концепцию промежуточной области, где отслеживаются все обновления/изменения. Здесь хранятся изменения, которые вы хотели бы зафиксировать. Изменения могут представлять собой одну строку, файлы или части файлов.
- Неотслеживаемые изменения: Изменения/файлы в локальном каталоге, которые не перемещаются на промежуточную стадию, называются неотслеживаемыми изменениями.
- Отслеживаемые изменения: Изменения / файлы на промежуточном этапе называются отслеживаемыми изменениями.
1) Теперь откройте командную строку и перейдите в репозиторий git
2) Просто введите git status в командной строке.
branch master: говорит о том, что рабочее дерево является главной ветвью.
no commits yet: дает информацию о коммитах, на данный момент их еще нет.
Untracked files: говорит о том, что Git видит файлы, но еще не начал отслеживать изменения и отметил их красным цветом.
Status messages: дает соответствующие инструкции для промежуточных / нестагнирующих файлов.
Git add
Команда git add добавляет изменение в рабочий каталог в промежуточную область. Она сообщает Git, что в проекте есть несколько обновлений, которые пользователь хочет зафиксировать. Здесь следует отметить, что git add не влияет на удаленный репозиторий, так как изменения фактически не записываются до тех пор, пока вы не выполните git commit.
1) Давайте просто начнем с добавления одного файла к заявке. Чтобы использовать команду git add, просто введите git add filename. Слово filename здесь относится к имени файла, который вы редактировали, например CustomerData_IND.txt. Кроме того, используйте команду git status, чтобы увидеть, что git теперь может рассказать нам о состоянии репозитория.
Changes to be comitted: здесь отображается информация о отслеживаемых файлах, хранящихся на промежуточном этапе. Это тот самый, который мы добавили с помощью команды git add.
Untracked files: здесь отображается информация о неотслеживаемых файлах. Это те самые, которые добавили в проект раньше, но до сих пор не подтолкнули к постановке.
Команда Git Remove
Чтобы практиковать эту команду, давайте попробуем удалить тот же CustomerData_IND.txt, который был добавлен ранее.
Untracked files: CustomerData_IND.txt файл вернулся к списку игнорируемых изменения.
Добавление различных измененных файлов в промежуточную среду
Выше мы просто добавили один файл в staging. Что делать, если там будет несколько файлов для добавления. Это может быть легко достигнуто с помощью git add <file> <file>.
Чтобы добавить несколько файлов, введите
git add CustomerData_IND.txt CustomerData_UK.txt
Удаление различных файлов из промежуточного состояния
Как вы можете добавить несколько файлов в промежуточную среду, так же несколько файлов могут быть удалены и из промежуточной среды. команда для удаления нескольких файлов
Чтобы удалить несколько файлов, введите
Вывод: упомянутые два файла в команде теперь удаляются из промежуточного состояния и возвращаются в неотслеживаемый список.
Добавим все измененные файлы в промежуточную версию
Выше мы добавили несколько файлов в staging, но что делать, если там будет много файлов для добавления? Это может быть легко достигнуто с помощью git add *.
Чтобы добавить все измененные файлы, введите git add *
Все измененные файлы теперь перемещаются в промежуточный режим.
Таким же образом все файлы могут быть удалены из промежуточного состояния и перемещены обратно в неотслеживаемый список.
В последнем уроке мы познакомились с командой Git fetch и Read more
В одной из последних статей мы узнали о команде Git Read more
Мы уже знаем, как вносить изменения в локальное хранилище и Read more
Команда git push при выполнении перемещает изменения, внесенные пользователем на Read more
"Клонирование" означает создание идентичных особей естественным или искусственным путем. Клонирование Read more
Сегодня мы узнаем, как скопировать чужой репозиторий в наш аккаунт Read more
Противостояние изменениям - основная черта человека. Если в то время, когда вы начинали работу с системами контроля версий, не было Git - весьма вероятно, что вы начинали с Subversion. Часто люди говорят, что Git слишком сложен для начинающих. Тем не менее, я позволю себе с вами не согласиться.
В этой статье я расскажу, как можно использовать Git в работе с вашими проектами. Будем считать, что вы создаете проект с нуля, и хотите использовать Git в качестве системы контроля версий. После ознакомления с основными командами, мы ознакомимся с тем, как можно выложить ваш код на GitHub.
В этой статье речь пойдет об основных вещах - как инициализировать проект, как управлять новыми и уже существующими файлами, и как хранить свой код в облаке. Мы опустим некоторые сложные вещи, как ветвление, так как статья ориентирована на начинающих.
Установка Git
На официальном сайте Git есть подробная информация о его установке на различные системы - Linux, Mac, Windows. В нашем случае мы будем использовать Ubuntu 13.04, и Git мы будем устанавливать посредством apt-get .
Начальная конфигуация
Создадим директорию, в которой мы будем работать. Также вы можете использовать Git для работы с уже существующим проектом, и в таком случае вы не будете создавать демонстрационную директорию, как это описано ниже.
Первым делом надо инициализировать Git-репозитарий в директории проекта. Сделать это можно командой init , которая создает директорию .git со всей информацией о вашем проекте.
Далее необходимо указать наше имя и почтовый адрес. Вы можете сделать это следующим образом, заменив значения вашими данными.
Стоит отметить, что если вы не укажете ваш адрес и имя, то вместо них будут использоваться значения по умолчанию. В нашем случае значениями по умолчанию будут donny и donny@ubuntu.
Также мы устанавливаем цвет интерфейса в значение auto , так что вывод команд Git будет цветным. Мы добавляем префикс --global к этим командам для того, чтобы эти значения использовались во всей системе, и не было необходимости их задавать для каждого отдельного проекта.
Готовим файлы для коммита
Следующим шагом мы создадим несколько файлов. Можно использовать для этого любой текстовый редактор. Заметьте, что если вы инициализируете Git в уже существующем проекте, вам не нужно делать этот шаг.
Проверяем состояние репозитария
Теперь, когда в вашем проекте есть файлы, давайте посмотрим, как Git с ними обращается. Чтобы проверить текущий статус репозитария, используйте команду git status
Добавляем файлы в Git
На этом этапе Git не следит ни за одним из наших файлов. Необходимо специально добавить файлы в Git, чтобы это происходило. Для этого воспользуемся командой add.
Проверив статус репозитария видим, что один из файлов уже добавлен в него.
Чтобы добавить несколько файлов, используем следующее (заметьте, что первый файл мы добавили ранее, так что добавляем только оставшиеся два).
Можно использовать git add рекурсивно, но будьте осторожны с этой командой. Есть некоторые файлы (например, скомпилированные программы), которые не должны быть добавлены в систему контроля версий. Если вы используете git add рекурсивно, такие файлы также попадут в репозитарий.
Удаляем файлы
Представим, что вы случайно добавили в репозитарий файл, который не должен был туда попасть. Или же вы хотите убрать из системы контроля версий какой-либо файл. В общем, команда git rm не просто удалит файл из репозитария, но и физически удалит его с диска. Чтобы Git перестал отслеживать файл, но он остался на диске, используйте следующую команду:
Коммитим изменения
Git определяет коммит длинным шестнадцатеричным номером. Обычно, нет необходимости копировать всю строку, первых 5-6 символов достаточно для идентификации конкретного коммита. По скриншоту видно, что наш коммит идентифицируется числом 8dd76fc .
Дальнейшие коммиты
Давайте изменим несколько файлов после того, как мы их закоммитили. После того, как мы их изменили, git status сообщит о том, что у нас есть измененные файлы.
Можно посмотреть, что же изменилось в этих файлах с момента предыдущего коммита, с помощью команды git diff . Если вы хотите просмотреть изменения для конкретного файла, можно использовать git diff <файл> .
Необходимо проиндексировать изменения, и закоммитить их. Все измененные файлы проекта можно добавить на коммит следующей командой:
Можно избежать использования этой команды, если добавить параметр -a к git commit . Эта команда проиндексирует все измененные файлы, и закоммитит их. Но такой подход может быть довольно опасным, так по ошибке можно закоммитить то, что не хотелось. Например, скажем, что вы открыли файл, и случайно его изменили. При индексировании измененных файлов вы будете оповещены об изменениях в каждом файле. Но если вы отправите на коммит все измененные файлы не глядя с помощь. git commit -a , то будут закоммичены все файлы, включая те, которые вы коммитить не хотели.
Управление проеком
Чтобы просмотреть историю проекта, можно воспользоваться следующей командой:
где <хеш_коммита> - шестнадцатеричный номер, ассоциированный с коммитом. Так как данное руководство предназначено новичкам, мы не будем рассматривать, как вернуть состояние на момент конкретного коммита, или как управлять ветками.
5 последних уроков рубрики "Разное"
Как выбрать хороший хостинг для своего сайта?
Выбрать хороший хостинг для своего сайта достаточно сложная задача. Особенно сейчас, когда на рынке услуг хостинга действует несколько сотен игроков с очень привлекательными предложениями. Хорошим вариантом является лидер рейтинга Хостинг Ниндзя — Макхост.
Как разместить свой сайт на хостинге? Правильно выбранный хороший хостинг - это будущее Ваших сайтов
Разработка веб-сайтов с помощью онлайн платформы Wrike
Создание вебсайта - процесс трудоёмкий, требующий слаженного взаимодействия между заказчиком и исполнителем, а также между всеми членами коллектива, вовлечёнными в проект. И в этом очень хорошее подспорье окажет онлайн платформа Wrike.
20 ресурсов для прототипирования
Подборка из нескольких десятков ресурсов для создания мокапов и прототипов.
Топ 10 бесплатных хостингов
Небольшая подборка провайдеров бесплатного хостинга с подробным описанием.
Для добавления файлов в локальное хранилище в Git используется несколько команд:
- git add - добавление файлов в стадию ожидания;
- git commit - добавление файлов в локальное хранилище;
- git rm - отмена действий.
Получение статуса
Для отслеживания статуса всех файлов необходимо использовать команду git status .
Это одна из важнейших команд, так как система отслеживает изменения, а с ее помощью мы узнаем о результатах этого отслеживания. Если мы наберем git status в терминале, то система должна выдать следующее:
Добавление файлов
Перед добавлением файлов в локальное хранилище их необходимо подготовить. Для этого используется команда git add .
Через команду можно указать какие файлы необходимо добавить. Можно добавить всё, прописав git add . или git add -A , а также можно добавлять лишь некоторые файлы. Для их выбора можно воспользоваться различными командами:
Коммит
При коммите данных их необходимо комментировать, чтобы в дальнейшем каждое изменение в проекте было с комментарием (описанием действий).
Отмена действий
Если вы добавили файлы в стадию ожидания, но передумали и не хотите добавлять некоторые из них, то вам пригодиться команда git rm -cached "file" .
В ней укажите какой файл необходимо «выкинуть» из стадии ожидания на коммит.
Игнорирование файлов
Git имеет встроенную функцию .gitignore, с помощью которой мы можем предотвратить случайное попадание в git add ненужных файлов, папок и директорий. Очень часто в такой перечень попадают следующие данные:
- Логи;
- Артефакты систем сборки;
- Папки node_modules в проектах node.js;
- Папки, созданные IDE, например, Netbeans или IntelliJ;
- Разнообразные заметки разработчика.
Работает функция .gitignore очень просто:
- Создаем вручную файл под названием .gitignore и сохраняем его в директорию проекта.
- Внутри файла перечисляем названия файлов/папок, которые нужно игнорировать, каждое с новой строки.
- Файл .gitignore добавляем, коммитим и отправляем на сервер, как любой другой файл в проекте. Пример исключения перечисленных выше файлов выглядит так:
Слэш обозначает игнорирование директорий и всего их содержимого, звездочка – шаблон.
Задание к уроку
Необходимо оформить подписку на проект, чтобы получить доступ ко всем домашним заданиям
Большое задание по курсу
Вам необходимо оформить подписку на сайте, чтобы иметь доступ ко всем большим заданиям. В задание входит методика решения, а также готовый проект с ответом к заданию.
PS: подобные задания доступны при подписке от 1 месяца
git config --global user.name "[name]" — установить имя, которое будет прикрепляться к коммиту.
git config --global user.email "[email address]" — установить email, который будет прикрепляться к коммиту.
git config --global color.ui auto — включить полезную подсветку командной строки.
git config --global push.default current — обновлять удаленную ветку с таким же именем, что и локальная, при пуше изменений (если не указано иного).
git config --global diff.tool [tool] — установить программу для разрешения конфликтов при слиянии.
Создание репозиториев
git init [project-name] — создать новый локальный репозиторий с заданным именем.
git clone [url] — загрузить проект и его полную историю изменений.
Работа с изменениями
git status — полный список изменений файлов, ожидающих коммита.
git status -s — краткий вид изменений.
git diff — показать изменения в файлах, которые еще не были добавлены в индекс коммита (staged).
git add [file] — сделать указанный файл готовым для коммита.
git add . — сделать все измененные файлы готовыми для коммита.
git add '*.txt' — добавить только файлы, соответствующие указанному выражению.
git add --patch filename — позволяет выбрать какие изменения из файла добавятся в коммит.
git diff --staged — показать что было добавленно в индекс с помощью git add , но еще не было закоммиченно.
git diff HEAD — показать что изменилось с последнего коммита.
git diff HEAD^ — показать что изменилось с предпоследнего коммита.
git diff [branch] — сравнить текущую ветку с заданной.
git difftool -d — то же самое, что и diff , но показывает изменения в заданной difftool.
git difftool -d master.. — показать изменения, сделанные в текущей ветке.
git diff --stat — показать статистику какие файлы были изменены и как.
git reset [file] — убрать файлы из индекса коммита (изменения не теряются).
git commit --amend — добавить изменения к последнему коммиту.
Работа с ветками
git branch — список всех локальных веток в текущей директории.
git branch [branch-name] — создать новую ветку.
git checkout [branch-name] — переключиться на указанную ветку и обновить рабочую директорию.
git checkout -b <name> <remote>/<branch> — переключиться на удаленную ветку.
git checkout [filename] — вернуть файл в первоначальное состояние если он еще не был добавлен в индекс коммита.
git merge [branch] — соединить изменения в текущей ветке с изменениями из заданной.
git merge --no-ff [branch] — соединить ветки без режима “fast forwarding”.
git branch -a — посмотреть полный список локальных и удаленных веток.
git branch -d [branch] — удалить заданную ветку.
git branch -D [branch] — принудительно удалить заданную ветку, игнорируя ошибки.
git branch -m <oldname> <newname> — переименовать ветку.
Работа с файлами
git rm [file] — удалить файл из рабочей директории и добавить в индекс информацию об удалении.
git rm --cached [file] — удалить файл из репозитория, но сохранить его локально.
git mv [file-original] [file-renamed] — изменить имя файла и добавить в индекс коммита.
Отслеживание файлов
.gitignore — текстовый файл, в котором задаются правила для исключения файлов из репозитория. Например:
git ls-files --other --ignored --exclude-standard — список всех игнорируемых файлов.
Сохранение фрагментов
git stash — положить во временное хранилище все отслеживаемые файлы.
git stash pop — восстановить последние файлы, положенные во временное хранилище.
git stash list — список всех сохраненных изменений во временном хранилище.
git stash drop — удалить последние файлы, положенные во временное хранилище.
Просмотр истории
git log — список изменения текущей ветки.
git log --follow [file] — список изменения текущего файла, включая переименования.
git log --pretty=format:"%h %s" --graph — изменение вида отображения истории изменений.
git log --author='Name' --after= --pretty=oneline --abbrev-commit — посмотреть над чем работал заданный пользователь последнюю неделю.
git log --no-merges master.. — посмотреть историю изменений только для текущей ветки.
git diff [file-branch]..[second-branch] — посмотреть различия между двумя заданными ветками.
git show [commit] — показать метадату и изменения в заданном коммите.
git show [branch]:[file] — посмотреть на файл в другой ветке, не переключаясь на неё.
Отмена коммитов
git reset — убрать изменения из индекса коммита, сами изменения останутся.
git reset [commit/tag] — отменить все коммиты после указанного коммита, изменения будут сохранены локально.
git reset --hard [commit] — принудительно вернутся к указанному коммиту, не сохраняя историю и изменения.
Синхронизация изменений
git fetch [bookmark] — загрузить всю историю с заданного удаленного репозитория.
git merge [bookmark]/[branch] — слить изменения локальной ветки и заданной удаленной.
git push — запушить текущую ветку в удаленную ветку.
git push [remote] [branch] — запушить ветку в указанный репозиторий и удаленную ветку.
git push [bookmark] :[branch] — в удаленном репозитории удалить заданную ветку.
git push -u origin master — если удаленная ветка не установлена как отслеживаемая, то сделать ее такой.
git pull — загрузить историю и изменения удаленной ветки и произвести слияние с текущей веткой.
git pull [remote][branch] — указать конкретную удаленную ветку для слияния.
git remote — посмотреть список доступных удаленных репозиториев.
git remote -v — посмотреть детальный список доступных удаленных репозиториев.
Читайте также: