Привет мир.

В сегодняшней статье я расскажу об использовании Git через командную строку и исправлю ошибку, появившуюся на 23-й день. Давайте приступим к делу!

Использование Git и GitHub

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

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

Чтобы создать каталог вашего проекта, просто используйте каталог mkdir в папке ваших проектов (или любой другой папке, в которой вы храните свои проекты программирования). Чтобы легко запомнить команду, mkdir означает «создать каталог». Я назову этот проект nodejs-blog-tutorial, поэтому я выполню следующую команду:

mkdir nodejs-blog-tutorial

Затем создайте файл README. Я буду делать файл .txt вместо обычного файла разметки. Для этого используйте ваш любимый редактор и создайте файл. Я использую следующую команду:

vim README.txt

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

This is a blog created using Node.js, with the primary purpose of making a REST API that could CRUD to a database.
You can follow the tutorial at: https://vegibit.com/nodejs-blog-tutorial/

Следующее, что вам нужно сделать, это инициализировать ваш проект Git. Полезно помнить, что перед началом любого проекта его необходимо инициализировать. Вы можете сделать это, выполнив команду git init.

Теперь, если вы не настроили свои учетные данные Git, вам будет предложено записать имя пользователя и адрес электронной почты. Это интересная часть, так как я думал, что мне нужно будет написать имя пользователя и адрес электронной почты, которые я использовал в своей учетной записи GitHub. Однако я понял, что запуск git не обязательно совпадает с использованием GitHub. GitHub по своей сути является веб-сайтом, на котором хранятся и управляются проекты Git, а запуск Git зависит только от компьютера, который я использую в данный момент.

Вернемся к настройке ваших учетных данных, вы можете сделать это, написав следующий код:

git config --global user.name "[Your user name]"
git config --global user.email "[Your email]"

Насколько я знаю, ваше имя user.name будет отображаться, когда вы вносите изменения в совместный проект с другими разработчиками. Между тем, ваша электронная почта также будет использоваться в качестве учетных данных и адреса для связи. Однако вы также можете использовать сгенерированное GitHub электронное письмо, на которое нет ответа, чтобы сохранить конфиденциальность своей личной электронной почты.

После настройки учетных данных вы можете подключить свой проект Git к GitHub. Для этого откройте сайт GitHub и создайте новый репозиторий. Однако не включайте файл .README. Это перенаправит вас на страницу, которая предоставит вам три варианта создания вашего проекта: либо с нуля, либо загрузив существующий код через терминал, либо загрузив существующий проект с помощью кнопки загрузки файла. Поскольку мы используем Git из командной строки, мы будем использовать второй вариант; на веб-сайте будут две команды git, которые позволят нам связать наш проект Git с GitHub. Команды, которые я запускал, следующие:

git remote add origin https://github.com/RussellAjax/nodejs-blog-tutorial.git
git push -u origin master

Запустите обе строки кода в своем терминале, чтобы подключить проект Git к вашей учетной записи GitHub. Сладко, мы прошли первый этап использования Git.

Добавление, фиксация и отправка изменений

В git есть три команды, которые важно понять. Это следующие функции: git add, git commit и git push. Имея это в виду, также важно отметить, что процесс сохранения файла отличается от сохранения в традиционных текстовых процессорах или приложениях для редактирования.

Команда git add сообщает Git, что вы хотите включить обновления определенного файла в следующую фиксацию. Однако это не обязательно означает наличие каких-то конкретных изменений в самом репозитории проекта. Изменения не записываются, пока вы не запустите git commit. Вам придется запускать git add каждый раз, когда вы изменяете файл, чтобы вы могли перенести эти изменения в промежуточный снимок.

После того, как вы довольны подготовленным снимком, вы можете зафиксировать историю проекта, используя git commit. Коммиты создаются с помощью команды git commit для фиксации состояния проекта на данный момент времени. Затем этот commit можно отправить в удаленный репозиторий в вашем GitHub с помощью git push.

Теперь предположим, что я добавил в свой проект несколько разных файлов и каталогов. Следующим шагом, который я должен сделать, является добавление этих изменений в промежуточный снимок. Для этого я могу использовать git add. Однако git add обычно требует другого аргумента, а именно файлов, которые будут добавлены. Поскольку я недавно добавил несколько разных файлов и каталогов, добавление всего этого заняло бы много времени. Чтобы ускорить процесс, я могу запустить git add --all. Это добавит все файлы и каталоги в промежуточный процесс.

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

Затем я должен git commit файлы и, наконец, git push их в удаленный репозиторий.

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

Исправлена ​​ошибка шаблона Edge

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

Вот фрагмент index.js:

const express = require('express');
const expressEdge = require('express-edge');
cont path = require('path');
const mongoose = require('mongoose');
const app = new express();
app.use(express.static('public'));
app.use(expressEdge.engine);
app.set('views', __dirname + '/views');
app.get('/', (req, res) => {
    res.render('index');
});
app.get('/posts/new', (req, res) => {
    res.render('create');
});

Как вы можете видеть выше, есть два разных случая, когда моя страница отображалась неправильно. На первом рисунке мне удалось отобразить страницу для / path; это включает в себя как коды HTML, так и CSS. Однако в /posts/new мне не удалось полностью отобразить страницу; HTML загрузился, а CSS нет.

К счастью, мне удалось наткнуться на вопрос о переполнении стека, который напрямую связан с этим руководством. Согласно ответу, это как-то связано с относительным путем и абсолютным путем. Если вы посмотрите на скриншот кода app.edge в правом углу экрана, вы увидите следующий код:

<link href="css/clean-blog.min.css" rel="stylesheet">

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

<link href="/css/clean-blog.min.css" rel="stylesheet">

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

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

Абсолютный путь

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

Относительный путь

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

Чтобы объяснить, позвольте мне привести пример, в котором я могу загрузить CSS, используя относительный путь. Как видно выше, относительный путь начинается с текущего рабочего каталога. Это означает, что если я загружаю http://localhost:3000/posts/new/, то относительный каталог должен начинаться с /posts/new. Однако, поскольку я установил корневой каталог статических ресурсов на public, используя app.use(express.static('public'));, фактическим каталогом будет /public/posts/new/. Более того, поскольку я вызываю файл, расположенный по относительному пути css/clean-blog.min.css, то вызываемый путь — /public/posts/new/css/clean-blog.min.css.

Итак, я создал эти каталоги в public:

C:\Users\Russell\amorfati\nodejs-blog-tutorial\public\posts\new\css>

и в этом последнем файле css я скопировал вызываемый CSS-файл Bootstrap, который называется clean-blog.min.css. Имея это в виду, теперь я могу загрузить страницу CSS, используя относительный путь:

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