15 полезных функций Github, о которых вы могли не знать

GitHub
15 полезных функций Github, о которых вы могли не знать

Введение 🏂

В нашей обычной работе,githubЭто необходимая платформа для размещения кода, но большинство студентов используют ее только как место для размещения кода и не используют ее разумно.

фактическиgithubТам много забавных или интересных мест. Конечно, эти советы также могут значительно повысить вашу производительность.

Я разобрал некоторые функции/навыки, которые использую чаще всего, и надеюсь принести некоторую помощь в вашу работу!

Суть 🍓

Многие, возможно, не слышалиGist. это вgithubВ подкаталогах главной страницы:

ЭтоgithubПредусмотрена очень полезная функция.GistКак инструмент для вставки данных, таких какPastieКак и на веб-сайте, данные можно легко вставить вGistна веб-сайте и ссылки на других страницахGistданные вставлены в .

так какGitHubподсайт, естественно,GistиспользоватьGitРепозиторий поддерживает данные вставки, что очень удобно.

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

Каждая новая паста называетсяGist, и имеет отдельныйURL.

При создании вставки вновь созданныйGistстраницу, нажмите наembedКнопка (Встроить), частьJavaScriptкод, будет вышеJavaScriptкод, встроенный в веб-страницу, вы можете встроить код с соответствующей веб-страницыGistданные и поддерживать такие функции, как подсветка синтаксиса.

Создавайте файлы через веб-интерфейс 🍋

В какой-то момент мы можем не захотеть создавать файл локально, а потом передаватьgitНажимайте на пульт для создания файлов, так есть ли простой и эффективный способ?

очень просто, поgithubПоказывает, как создается веб-интерфейс (create new file), чтобы создать его:

поиск файлов 🛵

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

На самом деле, github предоставляет метод быстрого поиска: нажмите клавишу «T» на клавиатуре, чтобы активировать поиск файлов, нажмите ⬆️ и ⬇️, чтобы выбрать файл вверх и вниз, конечно, вы также можете ввести имя файла, который вы ищете чтобы быстро найти.

github cli (командная строка) 🖥

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

Позвольте мне провести вас от 0 до 1GitHub CLIБар!

Установить

установитьGitHub CLIочень простой.

существуетmacOSМожно использовать следующееHomebrewИнструменты для установки:

$ brew install github/gh/gh
# 如果需要更新执行下面的命令即可
$ brew update && brew upgrade gh

существуетWindowsВы можете установить его с помощью следующей командной строки:

scoop bucket add github-gh https://github.com/cli/scoop-gh.git
scoop install gh

Выполнение непосредственно из командной строки после завершения установкиghкоманду и увидите информацию, показанную на следующем рисунке, это означает, что установка прошла успешно:Для установки на другие платформы обратитесь к официальной документации:https://cli.github.com/manual/installation

использовать

При его использовании нам нужна авторизация:

Ввод ключа Enter в командной строке откроет страницу авторизации в браузере, нажмите Authorize to:Авторизация успешно вернулась в командную строку, мы обнаружили, что черезgh issue listЗаказ был полученissueСписок:

Здесь я перечисляю несколько часто используемых операций.

Создать проблему

Сначала мы отправляем один через CLI.issue,issueизBodyнужно пройтиnanoредактировать.

Проблемы с фильтром

issueЧасто в списке слишком много записей, отфильтруйте, указав условияissueочень распространенное требование:Как показано на изображении выше, он отфильтруетlabelда动态规划всеissue

Быстрый просмотр

найди того, кто тебе небезразличенissueПосле этого для просмотраissueконкретную информацию, вы можете использовать следующую команду, чтобы быстро преобразоватьissueОткроется страница сведений:Затем вы можете открыть веб-страницу, просмотреть и отправить. Конечно, мы также можем выбрать отправку непосредственно из командной строки.

Здесь я просто кратко представляюissueНесколько связанных общих команд, для большего использования, вы можете проверить официальную документацию, чтобы узнать больше:https://cli.github.com/manual/examples.

Действия на GitHub 🚀

GitHub ActionsдаGitHubслужба непрерывной интеграции.

как правило持续集成Он состоит из множества операций, таких как очистка кода, выполнение сценариев, вход на удаленные серверы, публикация в сторонних службах и т. д.GitHubназывать эти операцииactions.

если вам нуженaction, вам не нужно самому писать сложные скрипты, просто цитируйте то, что написали другиеactionТо есть весь процесс непрерывной интеграции становитсяactionsКомбинация.

GitHubСделал официальный маркет, можно искать чужие материалыactions:Ниже подробно описаны основные концепции и процесс выпуска.GitHub Actions.

основная концепция

  • workflow(Процесс): процесс непрерывной интеграции, запущенный один раз, является рабочим процессом.
  • job(задача): Рабочий процесс состоит из одного или нескольких заданий, что означает запуск непрерывной интеграции, который может выполнять несколько задач.
  • step(шаг): Каждое задание состоит из нескольких шагов, которые выполняются шаг за шагом.
  • action(действие): Каждый шаг может выполнять одну или несколько команд (действие) последовательно.

Пример: проект React опубликован на страницах GitHub.

здесь черезGitHub ActionsпостроитьReactпроект и опубликовать вGitHub Pages. Окончательный код здесьскладВнутри URL сообщенияhttps://jack-cool.github.io/github-actions-demo/.

сгенерировать ключ

Поскольку в примере необходимо отправить результаты сборки вGitHubсклад, поэтому требуетсяGitHubключ. согласно софициальная документация, сгенерировать ключ. Затем сохраните этот ключ в текущем репозиторииSettings/Secretsв.Имя переменной среды, которую я использую здесь,ACCESS_TOKEN.

Создайте проект React

использоватьcreate-react-appИнициализируйте приложение React:

$ npx create-react-app github-actions-demo
$ cd github-actions-demo

в проектеpackage.json, добавитьhomepageПоле (представляет корневой каталог после публикации приложения)

"homepage": "https://jack-cool.github.io/github-actions-demo"

Создание файлов рабочего процесса

в проекте.github/workflowsКаталог, создайте егоworkflowфайл, вотci.yml.

упомянутый вышеGitHubЕсть официальный маркет, здесь мы напрямую пользуемсяJamesIves/github-pages-deploy-action:

name: GitHub Actions Build and Deploy Demo
on:
  push:
    branches:
      - master
jobs:
  build-and-deploy:
    runs-on: ubuntu-latest
    steps:
      # 拉取代码
      - name: Checkout
        uses: actions/checkout@v2 # If you're using actions/checkout@v2 you must set persist-credentials to false in most cases for the deployment to work correctly.
        with:
          persist-credentials: false
      # 安装依赖、打包
      - name: Install and Build
        run: |
          npm install
          npm run-script build

      # 部署到 GitHub Pages
      - name: Deploy
        uses: JamesIves/github-pages-deploy-action@releases/v3
        with:
          ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }}
          BRANCH: gh-pages
          FOLDER: build

Вот что делает файл конфигурации:

1. Вытащите код. Вот официальное действие GitHub:actions/checkout@v2

2. Установите зависимости и пакет

3. Развернуть наGitHub Pages. Используются действия от сторонних авторов:JamesIves/github-pages-deploy-action@releases/v3. Я подробно опишу это здесьaction:

использоватьwithПараметры передают в среду три переменные среды:

  • ACCESS_TOKEN: читатьGitHubскладsecretsизACCESS_TOKENпеременная, которую мы установили ранее
  • BRANCH: развернуть веткуgh-pages(GitHub Pagesчитай ветку)
  • FOLDER: Путь файла для развертывания на складе, то есть мы используемnpm run buildСгенерированный каталог упаковки

Здесь следует отметить одну вещь: я используюv3версия, вам нужно использоватьwithПараметры передаются в переменные среды и должны быть созданы сами по себе; распространенные учебные пособия в Интернете используютv2версия, использоватьenvПараметр передается в переменную окружения, самому строить не нужно, можно использоватьBUILD_SCRIPTПеременные среды передаются в скрипт сборки.

На этом работа по настройке завершена.

После этого каждый раз, когда у вас есть кодpushприбытьmasterПри ветвлении,GitHubначнет строиться автоматически.

Следующая анимация демонстрирует полный процесс отправки кода для сборки:

Поделитесь конкретным кодом 🎯

Обычно у нас может быть очень хорошая строка кода, и мы хотим поделиться ею с другими коллегами, тогда мы можем перейти кurlдобавить после#L 行号,Например:https://github.com/Jack-cool/rest_node_api/blob/master/app/models/users.js#L17, эффект следующий:

Если вы хотите поделиться несколькими строками, вы можете перейти кurlдобавить позже как#L 开始行号-L 结束行号,картинаhttps://github.com/Jack-cool/rest_node_api/blob/master/app/models/users.js#L17-L31, эффект следующий:

представленныйmsgАвтоматически закрыть тему 🏉

Давайте посмотрим на закрытиеissuesключевое слово:

  • close
  • closes
  • closed
  • fix
  • fixes
  • fixed
  • resolve
  • resolves
  • resolved

Закрыть задачу в том же репозитории

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

Например, сообщение фиксации содержитfixes #26, то как только этот коммит будет объединен с веткой по умолчанию, номер 26 в репозиторииissueавтоматически закроется.

Если этот коммит не находится в ветке по умолчанию, то этотissueне закроется, но под ним будет подсказка. Этот совет подскажет вам, что кто-то добавил коммит с упоминанием этогоissue, который будет закрыт, если вы объедините его с веткой по умолчаниюissue.

Закрыть задачи в разных репозиториях

Если вы хотите закрыть другой репозиторийissue,можно использоватьusername/repository/#issue_numberтакой синтаксис.

Например, сообщение фиксации содержитcloses Jack-cool/fe_interview/issues/113, закроетсяfe_interviewсередина113Нетissue.

Закрыть другие складыissueПредпосылка заключается в том, что вы будете кодироватьpushна соответствующий склад

Просмотр данных доступа к проекту 🎃

Под вашим проектом нажмитеInsights, затем нажмитеTraffic, есть внутриReferring sitesа такжеPopular contentподробные данные и рейтинги.

вReferring sitesУказывает, с какого сайта все пришли на ваш проект,Popular contentЭто означает, какие файлы вашего проекта часто просматриваются людьми.

список задач 📝

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

Создайте список задач

issuesа такжеpull requestsВы можете добавить флажки в , синтаксис выглядит следующим образом (обратите внимание на пробелы):

- [ ] 步骤一
- [ ] 步骤二
  - [ ] 步骤2.2
  - [ ] 步骤2.3
- [ ] 步骤三

Эффект следующий:

обычныйmarkdownфайл можно создать只读список задач, напримерREADME.mdдобавлено вTODO list:

### 接下来要做的事 🦀
- [x] 数据结构与算法
- [ ] react源码
- [ ] docker

Эффект следующий:

Сортировать задачи

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

issuesшаблон иpull requestШаблон 🍪

здесь сissueпример шаблона,prШаблон похож

этоissueдаю шаблонelement uiнестиissueнайдено, когда:

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

Создайтеissuesтрафарет

  • Создайте новый в корневом каталоге кодовой базы.githubсодержание
  • существует.githubдобавить в каталогISSUE_TEMPLATE.mdфайл какissuesШаблон по умолчанию. при созданииissue, система автоматически использует шаблон.

Если я создам новый в корневом каталоге проекта.github/ISSUE_TEMPLATE.md:

## 概述

bug 概述

## 重现步骤

1. aaa
2. bbb
3. ccc

## Bug 行为

Bug 的表现行为

## 期望行为

软件的正确行为

## 附件

附上图片或日志,日志请用格式:

> ```
> 日志内容
> ```

Новое на этом складеissueВышеупомянутая предустановка появится, когдаissueтрафарет:

Вики на GitHub 📜

Обычные проекты всех, обычно используютMarkdownписать проектную документацию иREADME.mdЖдать.MarkdownВ целом, он может удовлетворить наши потребности в написании документов, и при правильном использовании эффект тоже очень хороший. Однако, когда проектный документ относительно длинный, опыт чтения может быть не таким идеальным, я думаю, что каждый должен был столкнуться с этой ситуацией.

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

оWikiИспользование , здесь объясняться не будет, вы можете обратиться к конкретномуофициальная документация

Посмотрите тепловую карту истории коммитов 👨‍🚀

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

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

Подмодули Git и поддеревья Git 👨‍🌾

Зачем использовать подмодули или поддеревья?

Команды обычно имеют общую кодовую базу,submoduleа такжеsubtreesЭто позволяет нам использовать эти общие коды в разных проектах, чтобы избежать дублирования кода из-за копирования и даже привести к множеству версий одного и того же кода с разными модификациями.

разница

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

использовать

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

  • submodule: https://git-scm.com/book/en/v2/Git-Tools-Submodules
  • subtree: https://einverne.github.io/post/2020/04/git-subtree-usage.html

Рекомендация плагина GitHub 🦐

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

Octotree

Нам иногда нужноgithubнайти файлы наOctotreeСтруктура каталогов текущего проекта может отображаться в левой части репозитория, что позволяетgithubиспользовать на изображенииWeb IDEТак же удобно.

isometric-contributions

Это более крутой 3D стерео рендерингgithubспособствовать.

Enhanced GitHub

Этот плагин поддерживает отображение размера репозитория, размера каждого файла и ссылки для скачивания каждого файла в репозитории.

Талисман GitHubOctocat🦊

хаха это уже интереснее, я только что узналgithubТакже имеет свой талисман.

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

Ссылаться на

  • Преподаватель Руан Ифэн «Учебник по началу работы с GitHub Actions»

Любовное тройное комбо

1. Если вы считаете, что контент полезен для вас, добро пожаловатьдолябольше друзей.

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

3. Добавьте WeChatfs1263215592, пригласите вас в группу технического обмена, чтобы учиться вместе 🍻