cat /путь к ключу одного из разрабов/id_rsa.pub >> ~/.ssh/authorized_keys - добавляем открытые SSH-ключи разработчиков (столько ключей, сколько разработчиков) в файл authorized_keys.
mkdir git
cd git
mkdir project.git
cd project.git
git init --bare - создаем репозиторий без рабочего каталога. Это самая главная строчка по сути с ее помощью мы и создали git сервер. Заметьте, что кто-то должен заходить на сервер и создавать голый репозиторий каждый раз, когда вы хотите добавить новый проект.
Допустим на локальном компе Васи есть проект и он послужит первоисточником:
cd myproject
git init
git add .
git commit -m 'Initial commit'
git remote add origin git@8.8.8.8:/home/git/git/project.git - файлы проекта залиты на сервер.
Теперь все остальные могут клонировать проект: git clone git@8.8.8.8:/home/git/git/project.git
Для наглядности представим что у нас есть внешний статический ip и допустим у нас есть локальный компьютер с ip 192.168.0.10. Мы хотим сделать возможным подключаться к нему по ssh (22 порт) через интернет. Но мы хотим чтоб из интернета подключались например к порту 9022.
В качестве лайт версии бэкапа можно делать “снимки”. Снимок - сохраненное состояние системы и позже всегда можно откатиться до этого состояния. При этом удаленные файлы не восстановятся (аналог “точки восстановления” у windows). В моей версии к снимкам можно перейти с “главного экрана” (как показано на рисунке).
Бэкап или перенос гостевой ОС
Правой кнопкой мыши нажимаем на нужную гостевую ОС (как показано на рисунке)
Выбираем “Показать в проводнике”
Содиржимое папки это и есть наша гостевая ОС, бэкапим ее.
Клонирование системы
Правой кнопкой мыши нажимаем на нужную гостевую ОС (как показано на рисунке)
Выбираем “Клонировать” (Ctrl+O)
Вводим имя
Выбираем полное кланирование (чтоб можно было переносить на другой комп, и вообще чтоб бэкап был полностью изолирован).
Выбираем “Состояние машины” (к чему нам снимки)
Все готово. Рядом с оригенальной гостевой ОС появляется наш клон.
Пройденная жизнь имеет ту ценность, которая остается в сердцах живых.
Что наша жизнь? Секунда, миг… Уснул, проснулся, ты — старик…
С самого рождения он отличался от своих братьев и сестер: его ярко-рыжая шерстка выделала Котю из прочих котят. И даже не смотря на то, что глаза у него еще не открылись, чувства обоняния и осязания отлично служили ему, позволяя узнавать своих братьев, сестер, маму и своего будущего хозяина, который на тот момент учился в 7 классе.
npm init - создает файл package.json, который содержит информацию о проекте (описание проекта и зависимости).
npm install gulp --save-dev - устанавливаем gulp в папку с проектом
Примечание:npm install gulp --save-dev === npm i gulp -D (алисы не везде работают) 6. Перечень необходимых пакетов: * npm i browserify -D - позволяет вам использовать стиль node.js модулей для работы в браузере. Мы определяем зависимости и потом Browserify собирает их в один маленький и чистенький JavaScript файл. * npm i vinyl-source-stream -D - виртуальная файловая система для чтения/записи файлов. Получаем выходные данные Browserify и сохранить их в файл с помощью Gulp. * npm i rimraf -D - полностью очищает каталог * npm i stringify -D - позволяет подключать статические файлы, например шаблоны. * npm i gulp-sftp -D - закачиваем изменения по ssh Примечание: При установки все скаченые модули располагаются в папке node_modules, зависимости прописываются в файл package.json. Если папка node_modules удалена, но в package.json прописаны зависимости, установить все пакеты можно командой npm install. 7. Создаем в корне проекта файл gulpfile.js Ниже показано содержимое файла.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
// импорт npm модулей в проект var gulp = require('gulp'), browserify = require('browserify'), source = require('vinyl-source-stream'), rimraf = require('rimraf'), stringify = require('stringify');
var sourceFile = './src/main.js', // местоположение главного нашего js файла, точки входа destFolder = './dist', // местоположение финального файла destFile = 'bundle.js'; // имя, которое мы хотим дать нашему финальному файлу
[0] данная функция вызывается в консоле так: gulp build. В формальных параметрах могут также указываться функции, которые необходимо выполнить до начала работы данной функции, например gulp.task('build', ['copy-static'], function() { вызываем сначала функцию copy-static.
[1] главное тут в Browserify, ему передаем точку входа в наше приложение
[2]transform - метод Node, с которым можно работать благодаря browserify. Преобразует поток нужным образом. stringify - позволяет подключать статические файлы, например шаблоны. extensions: [‘.html’, ‘.tpl’, ‘.hbs’] - указываем форматы каких статических файлов можно подключать и позволяет складывать их в переменную minify - минимизирует файлы Пимечание: если в gulpfile.js не указать stringify, то в файлах проекта нельзя будет подключать шаблоны: var AppTpl = require('./../templates/App.tpl');
[3] используем потоковый Browserify API для того, чтобы вернуть поток с нашим JS контентом
[4][5] перекидываем информацию из потока в файл и сохраняем его в директорию.
Примечание: Функции require, pipe и transform относятся к Node:
1) require - метод для импорта модулей, JSON-файлов, папок и т.д. 2) pipe - принимает поток, который используется для передачи читаемого потока в записываемый. 3) transform - метод Node, с которым можно работать благодаря browserify. Преобразует поток нужным образом.
args = require(‘yargs’).argv;
gulp.task(‘test’, function () {
var env = args.env || 'prod'; // команда в консоле: gulp test --env df (выводит df)
console.log(env);