Супер подробно! Практика с вами, чтобы начать работу с GitHub!

задняя часть программист GitHub
Супер подробно! Практика с вами, чтобы начать работу с GitHub!

Автор: Питер Монтажер: Джек Тиан
Источник: Публичный аккаунт «Путешествие Цзе Гэ в ИТ».
ID: Джейк_Интернет
Пожалуйста, свяжитесь с авторизацией для перепечатки (идентификатор WeChat: Hc220088)

Быстрый стартGitHub

GitHub — нарицательное имя в области разработки программ.Сейчас почти все разработчики в Интернете используют инструмент управления версиями GitHub в качестве своего первого выбора для контроля версий.Даже не разработчик, как автор, человек, который имеет дело с данными каждый день , также использует GitHub, в основном для следующих целей. :

  • Найдите информацию: на GitHub есть много материалов и кодов для интеллектуального анализа данных и машинного обучения с открытым исходным кодом. Автор напрямую разветвляет или клонирует их для изучения.

  • Технический обмен: поднятие вопросов для проектов с открытым исходным кодом может иметь эффект технического обмена.

  • Персональный показ: Сейчас в интернет-пространстве, если у программиста есть хороший проект с открытым исходным кодом на GitHub, он обязательно привлечет внимание. Так что GitHub на самом деле является хорошей ареной для демонстрации вашей личной силы, возможно, это поможет вам завоевать расположение рекрутеров.

Можно сказать, что официальный GitHub сделал социальное программирование реальностью.

Поскольку у члена интернет-сообщества есть много преимуществ, нет причин не изучать GitHub как следует 😄 Эта статья подробно расскажет об основных операциях GitHub и поможет вам быстро начать работу с GitHub.

图片

Управление версиями

Управление версиями — это управление историей обновлений. До Git люди в основном использовали Subversion (сокращенно SVN) в качестве инструмента контроля версий.

SVN

СВН принадлежитцентрализованныйсистема управления версиями, которая характеризуетсяСклад централизованно хранится на сервере, поэтому склад только один. Все функции централизованной системы просты в управлении, но если среда, в которой находится разработчик, не может быть подключена к Интернету, последний исходный код не может быть получен, а работа по разработке не может быть выполнена.

图片

Git

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

Процесс форка фактически заключается в копировании склада на ваш собственный аккаунт.

图片

что GitHub

GitHub — это платформа для размещения кода на основе Git. Если вы платный пользователь, вы можете создать свой собственный репозиторий, для обычных пользователей вы можете создать только публичный репозиторий, а это значит, что код репозитория должен быть общедоступным. В чем разница между Git и GitHub?

В Git разработчики хранят исходный код в репозитории под названием «репозиторий Git» для простоты использования, а GitHub — это служба, предоставляющая репозитории Git в Интернете.

Исходный код, представленный на GitHub, управляется через Git.

Установите и настройте Git

Установить

Сейчас автор используетMacOSсистема, автономнаяGitиз. Для установки в системе Windows обратитесь к следующей статье, в которой подробно объясняется.

Руководство по установке Git в системе Windows (подробно описывает процесс установки Git):

woo woo woo.cn блог на.com/степень института лет…

настроить

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

git config --global user.name "Firstname Lastname"  # 名称
git config --global user.email "your_email@example.com"  # 邮箱
# ~/.gitconfig中以如下形式输出文件
[user]
name = Firstname Lastname
email = your_email@example.com

нужно знать, это:

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

  2. Программисты со всего мира, пожалуйста, используйте английские, а не китайские иероглифы; если вы не хотите использовать свое настоящее имя, вы можете использовать псевдоним сайта

Как улучшить читаемость вывода команды?

git config --global color.ui auto   # 将color.ui 设置成auto

зарегистрироваться

Перейдите на страницу создания пользователя:github.com/join

Заполните следующую информацию и нажмитеCreate an accoutПросто

图片

Настроить SSH

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

ssh-keygen -t rsa -C   # 创建SSH Key

Далее нужно дважды ввести пароль, что в итоге сгенерирует два файла:

  • id_rsa: закрытый ключ

  • id_rsa.pub: открытый ключ

Далее нам нужно добавить открытый ключ в GitHub, чтобы мы могли использовать закрытый ключ для аутентификации в будущем. Нажмите кнопку «Настройки учетной записи» в правом верхнем углу:

图片

После входа в настройки добавьте новый ключ SSH.

图片

Далее появятся два поля ввода для Заголовка и Ключа, введите соответствующее имя ключа в Заголовок и скопируйте содержимое файла id_rsa.pub выше для части Ключ.

`cat ~/.ssh/id_rsa.pub   # 查看内容`

После того, как добавление будет завершено, вы получите электронное письмо с сообщением «добавление открытого ключа завершено» в наш почтовый ящик, просто подтвердите. Это завершает проблемы аутентификации и связи закрытого ключа и GitHub во всей раздаче.Проверьте это:

ssh -T git@github.com 

Введите пароль и «Да» на следующей странице, чтобы завершить проверку.

построить склад

Сначала мы должны понять одну вещь:Есть два склада

  • Удаленные репозитории на GitHub: удаленные репозитории

  • На вашем собственном местном складе: местный склад

В этой статье в качестве примера используется система MacOS, основанная на Linux; если вы хотите узнать, как создать хранилище под Windows, обратитесь к следующему подробному объяснению:

Использование Git (10 минут для начала):

у-у-у. Краткое описание.com/fear/09 243768…

удаленный склад

1. Чтобы создать удаленный склад, нам нужно сначала войти в нашу учетную запись GitHub, а затем создать склад.

图片

2. Создаемgit_startсклад

  • название склада

  • Краткое описание склада

  • не хотетьДобавьте файл README.md в удаленный репозиторий. Мы используем ручное нажатие, чтобы добавить

图片

3. Описание склада

Откройте склад, который мы создали выше, и появится следующий контент (сначала напишите заметку, а объясните позже)

echo "# git_start" >> README.md    # 往README.md中写入内容
git init  # 初始化
git add README.md   # 添加文件
git commit -m "first commit"   # 提交并注释
git branch -M main  # 提交分支
git remote add origin git@github.com:pidada/git_start.git   # 建立远程仓库与本地仓库的连接
git push -u origin main  # 推送

图片

местный склад

1. Создайте локальный склад

Так называемый локальный склад — это склад вашего собственного компьютера-клиента. Точно так же автор создал локальный склад с таким же названием локальноgit_start, которая на самом деле является папкой

Локальный склад должен соответствовать удаленному складу.

mkdir git_start  # 创建文件夹,即仓库
cd git_start  # 切换到仓库中
ls  # 查看内容,目前是没有任何内容

图片

2. Операция инициализации

echo "学习GitHub的使用,快速入门" >> README.md   # 往文件中写入内容,后面可以更改
git init   # 初始化

图片

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

3. Просмотр документов для подачи

пройти черезlsПосмотреть ужеREADME.mdДокументация

git status  # 查看待提交的文档

图片

4. Подать документы

Ставим вышеперечисленноеREADME.mdДокументация и сгенерированные.gitПодайте документ вместе

git add .  # 提交全部文件
git add README.md  # 单独提交一个文件
git commmit -m "2021-1-1"  # commit提交,同时写上备注:2021-1-1
# add 和 commit的同步操作
git commit -am "2021-1-1"

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

git commit -m "2021-1-1"Это реальная отправка контента, и в то же время написать заметку: отправить файл из кеша на удаленный

5. Установите подключение к удаленному складу и нажмите

git remote add origin git@github.com:peter/git_start.git  # 建立连接
git push -u origin master  # 推送到master分支

图片

6. Проверить

На этом этапе, когда мы обновим страницу удаленного хранилища, мы обнаружим, что страница была обновлена ​​и имеет контент:

图片

7. Просмотрите журнал коммитов

git log  # 查看提交日志
git log --pretty=short  # 只显示一行简述信息
git log README.md  # 只显示指定目录、文件的日志
git log -p README.md  # 只显示指定目录、文件的日志修改前后的改动

commitРядом со столбцом показан хэш, указывающий на этот коммит.В других командах Git этот хэш используется при указании на коммиты.

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

Столбец «Дата» показывает дату и время выполнения.

Внизу информация о представлении, информация после параметра -m

图片

8. МодификацияREADME.mdдокумент

Измените содержимое через редактор vim следующим образом:

图片

Синтаксис Markdown используется выше, а затем мы снова выполняем указанную выше команду:

git status  # 状态是红色
git add .  # 提交到缓存区
git commit -m "修改README.md"  # 记录提交信息
# git remote add origin git@github.com:peter/git_start.git  # 已经建立了连接,所以不必在执行此命令
git push -u origin master # 推到master分支

图片

Просмотрите весь процесс работы:

  1. Создать удаленный репозиторий

  2. Создайте локальный репозиторий

  3. Инициализировать локальный репозиторий

  4. Отправить документ в кэш

  5. Перенесите кеш на удаленный склад

Важный заказ

Подытожим несколько важных команд в приведенной выше операции:

1. git-статус

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

2. git добавить

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

3. git совершить [-m]

Сохраните файлы в staging area в истории хранилища, за параметром -m следует информация о коммите:git commit -m "первая фиксация"

4. журнал git

Просмотр информации журнала прошлых коммитов: кто когда коммитил или объединял и т. д., и в чем разница до и после операции

git log  # 查看日志
git log --pretty=short  # 只显示提交信息的第一行
git log README.md  # 查看某个文件的提交信息
git log -p README.md  #  -p参数只查看提交的改动部分

5. git разница

Посмотрите разницу между рабочим деревом, промежуточной областью и последней фиксацией.

git diff  # 查看当前工作树和暂存区的差别
git diff HEAD  # 查看本次提交和上次提交的差别;HEAD指向当前分支中的最新一次提交的指针

Выработайте привычку: выполните команду git diff HEAD перед git commit, чтобы увидеть разницу между этим коммитом и последним коммитом; HEAD указывает на указатель на последний коммит в текущей ветке.

6. Складские операции

-uФункция: при запуске команды git pull для получения содержимого из удаленного хранилища в будущем локальное хранилище может напрямую получать содержимое из основной ветки источника без добавления других параметров.

git remote add origin git@github.com:github/peter/git_start.git  # 添加远程仓库
git push # 推送到远程仓库
git push -u origin master  # 推送到master分支下
git push -u origin feature_A  # 推送到分支A
git clone  仓库地址  # 将某个远程仓库的内容复制到本地
git push  # 推送
git pull  # 获取最新的远程分支内容

филиал

главная ветвь

Основная ветка — это ветка, созданная Git по умолчанию, и все остальные ветки основаны на этой ветке.

  • Разные филиалы выполняют свою работу отдельно

  • После того, как работа этой ветки будет завершена, объедините ее с основной веткой.

图片

Операция слияния после выполнения задания:

图片

Команды, связанные с ветвями

1, ветка git - отображать ветку

Отобразить список веток: отобразить список названий веток и подтвердить текущую ветку; помечено звездочкой*Указывает текущую ветвь

git branch -a  # 查看当前分支的相关信息

2. функция создания ветки git

git branch feature

3. git checkout feature-switch ветка

git checkout feature
git checkout master  # 切换到master分支
git checkout -  # 切换到上一个分支

Слияние двух приведенных выше команд, создание новой ветки и переключение на новую ветку:

git checkout -b feature  # 切换到创建的新分支

4. git слияние-слияние веток

Предполагая, что ветвь завершила работу и ее необходимо объединить с мастером основной ветки, используйте следующий оператор:

git checkout master  # 切到主分支
git merge --no-off feature-A  # 合并分支

5. Просмотр веток в виде git log —граф-граф

Просмотр отправленных материалов в виде графика

git log --graph

图片

Откат версии

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

1, обратно в указанное состояние

Хеш-значение может быть выполнено, если вы введете более 4 цифр.

git reset --hard [哈希值]  # 添加指定的哈希值,代表某个时间点的状态

2. ПросмотрВсе исполнения текущего склада выполненыЖурнал операций

Записывайте каждую команду, которую мы выполняем

git reflog   # 针对当前仓库
git log   # 查看以当前状态为终点的历史日志

图片

Итак, мы можем сначала пройтиgit reflogдля просмотра хеш-значения, затем передайтеgit reset —hard [哈希值]вернуться в состояние

3. Изменить предыдущую информацию о представлении

использоватьgit commit --amendЗаказ

git commit --amend

4. История сжатия

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

git rebase -i
git rebase -i HEAD~2  # 当前分支下的两个最新历史记录进行压缩

5. Добавьте и отправьте после завершения

git commit -am "add和commit同时完成"

Подробное объяснение сброса git

Заказ

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

Синтаксис команды git reset следующий:

git reset [--soft | --mixed | --hard] [HEAD]

--mixedдаПараметры по умолчанию, можно не указывать, файл, используемый для сброса промежуточной области, согласуется с последней фиксацией (commit), а содержимое файла рабочей области остается неизменным

soft

--softпараметр для возврата к определенной версии

git reset --soft HEAD  #  回退到上个版本
git reset --soft HEAD~3  # 回退到上上上个版本

тяжело⚠️

! ! ! ⚠️Использовать с осторожностью--hardпараметр, удаляющий всю информацию до точки отката

git reset --hard HEAD~3   # 回退到上上上个版本
git reset --hard 1de43  # 回退到指定版本
git reset --hard origin/master  # 本地状态回退到和远程相同

HEAD

git reset HEAD^   # 回退到所有内容的上一个版本
git reset HEAD^ Git入门.md  # 回退到Git入门.md文件的版本的上一个版本(指定版本的上个版本)
git reset 01b42  # 回退到指定版本,需要至少哈希值的前4位;可以通过git reflog命令先查看我们要回退的版本号的哈希值

git reset HEAD также отменяет кэшированное содержимое. Когда мы изменяем содержимое файла и выполняемgit addПосле этого мы хотим отменить содержимое буфера, используя следующую команду:

git reset HEAD [filename]

图片

Описание ГОЛОВА:

  • HEAD указывает текущую версию

  • HEAD^ предыдущая версия

  • HEAD^^ предыдущая версия

  • HEAD^^^ предыдущая версия

  • И так далее…

Может быть представлено с помощью ~ чисел

  • HEAD~0 указывает на текущую версию

  • HEAD~1 предыдущая версия

  • HEAD^2 предыдущая версия

  • Предыдущая версия на HEAD^3

  • И так далее…

Суммировать

  • HEADУказанная версия является текущей версией, поэтому Git позволяет нам переключаться между историей версий с помощью командыgit reset --hard commit_id.

  • Перед шаттлом используйтеgit logИсторию коммитов можно просмотреть, чтобы определить, к какой версии следует откатиться.

  • Чтобы вернуться в будущее, используйтеgit reflogПросмотрите историю команд, чтобы определить, к какой версии в будущем вернуться.

Оригинальная ссылка:Супер подробно! Практика с вами, чтобы начать работу с GitHub!