Skip to content

Instantly share code, notes, and snippets.

@fomvasss
Last active March 20, 2024 14:17
Show Gist options
  • Save fomvasss/eaac79e73883497a80eff0606dcdcf57 to your computer and use it in GitHub Desktop.
Save fomvasss/eaac79e73883497a80eff0606dcdcf57 to your computer and use it in GitHub Desktop.
GIT info.md

GIT, Composer

Новый проект

- cd sites/
- git clone git@bitbucket.org:webwest/basebest.ru.git
- cd basebest
- git status
- laravel new myapp (or) composer create-project --prefer-dist laravel/laravel myapp

Edit .gitignore

git add -A
git commit -m "Init commit"

if you init project

git remote add origin ssh://git@bitbucket.org/webwest/agropostavka.app.git
git push -u origin master
git checkout -b fomin
 #work...
git push origin fomin
/.gitignore
	/node_modules
	/public/hot
	/public/storage
	/storage/*.key
	/vendor
	/.idea
	/.vagrant
	Homestead.json
	Homestead.yaml
	.env
	/packages
	/public/uploads
	/public/photos
	/composer.lock
	_ide_helper.php
	/config/ide-helper.php
	/config/ide-helper.php
	/resources/assets/vendor
	/storage/debugbar/
	/public/mix.*.js
	/public/mix.js

Права на файлы

git config --global core.filemode false
git config --local core.filemode false
git config core.filemode false

используйте «git rm --cached <файл>…», чтобы убрать из индекса

Теги

Легковесные теги - это просто указатель на конкретный коммит. Аннотированные теги хранятся как стандартные объекты в базе данных Git. Они имеют контрольную сумму, имеют автора, адрес его электронной почты, а также дату; имеют сообщение коммита, и могут быть подписаны и проверены с GNU Privacy Guard (GPG). Обычно рекомендуется создать аннотированные теги, чтобы вы могли иметь всю эту информацию, но если вы хотите создать временный тег или по какой-то причине не хотите сохранять другую информацию, вам необходимо использовать легковесные теги.

Работа с аннотированными тегами.

Заходим из консоли GitBush в локальную версию проекта, находящегося на github для создания его версии. Выполняем команду

git tag -a v0.1 -m "my version 0.1"

опция -m задает меточное сообщение, которое будет храниться вместе с меткой. В этом варианте будет создан тег для последней версии, если нужно создать тег определенного коммита, добавте номер нужного коммита после tag, в этой команде. Чтобы посмотреть все метки, которые есть, команда:

git tag

Для просмотра конкретной метки

git show v0.1

Для отправки меток на GitHub

git push --tags

https://sites.google.com/site/sitsiliyaror/blogs/github/tags-metki

Семантическое управление версиями

Номер версии ДОЛЖЕН состоять из X.Y.Z, где X, Y, и Z это положительные числа. X это Major версия, Y это Minor версия и Z это Patch версия. Каждый элеме ДОЛЖЕН увеличиваться с шагом один. Например: 1.9.0 -> 1.10.0 -> 1.11.0.

x.y.z - МАЖОРНАЯ.МИНОРНАЯ.ПАТЧ

  1. МАЖОРНУЮ версию, когда сделаны обратно несовместимые изменения API.
  2. МИНОРНУЮ версию, когда вы добавляете новый функционал, не нарушая обратной совместимости.
  3. ПАТЧ-версию, когда вы делаете обратно совместимые исправления.

При указании допустимых версий пакетов можно использовать точное соответствие 1.2.3, диапазоны с операторами сравнения <1.2.3, комбинации этих операторов >1.2.3 <1.3, "последняя доступная" 1.2.*, символ тильды ~1.2.3 и знак вставки ^1.2.3

Например:

Установка нужной версии

  • composer require spatie/laravel-web-tinker:1.2.2
  • composer require spatie/laravel-web-tinker:"^1.2"

Создание удаленного репозитория:

Linux / OS X

  1. Создаем удаленный репозиторий, указывая имя учетной записи.

curl -u 'USER_NAME' https://api.github.com/user/repos -d'{"name":"demo"}'

  1. Вводим пароль от учетной записи:

Enter host password for user 'USER_NAME': Репозиторий demo создан.

Теперь выгружаем проект.

git remote add origin https://github.com/USER_NAME/demo.git git push -u origin master

Новый гит репозиторий

git init
git status
git remote add origin git@github.com:fomvasss/youtube.git
git add -A
git commit -m "Initial commit v1.0"
git push origin master

git tag -a v1.0.0 -m "Release v1.0.0"        (по последнему коммиту)                             
git push --tags   /   git push origin v1.0     (отправка всех тегов) / (отправка указаного тега)

git tag -d tag-name - удалить локальный тег
git push origin :refs/tags/tag-name - удалить тег на репозитории

Переименовать локальную ветку

If you want to rename a branch while pointed to any branch, do:

git branch -m <oldname> <newname>

If you want to rename the current branch, you can do:

git branch -m <newname>

A way to remember this, is -m is for "move" (or mv), which is how you rename files.

Как удалить тег из git-репозитория

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

Удаление тега Для локального репозитория данная операция проста до безбразия:

git tag -d tag_name

А для того чтобы убрать оный таг ещё и из репозитория, расположенного на удаленном сервере (GutHub, Gitorious, etc)

git push origin :refs/tags/tag_name

Перемещение тега А можно тег просто переместить на другой коммит. В локальном репозитрии создаем тег с таким же имене как и существующий, добавив ключи -f

git tag -f tag_name

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

git push -f origin tag_name

http://doomer.org/blog/programming/how-to-delete-a-remote-git-tag/

Как сделать свой первый Pull Request

Конфликты:

https://ru.stackoverflow.com/questions/437456/%D0%9A%D0%B0%D0%BA-%D1%80%D0%B0%D0%B7%D1%80%D0%B5%D1%88%D0%B0%D0%B5%D1%82%D1%81%D1%8F-%D0%BA%D0%BE%D0%BD%D1%84%D0%BB%D0%B8%D0%BA%D1%82-%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B9-%D0%BF%D1%80%D0%B8-%D1%81%D0%BB%D0%B8%D1%8F%D0%BD%D0%B8%D0%B8-%D0%B2%D0%B5%D1%82%D0%B2%D0%B5%D0%B9

git revert <hash> - отменяет указанный комит, создает новый с отменок указанного.

Откат git pull origin <fail_branch>

Смотрим хеш последнего нужного комита git log Запускаем:

  • git reset <hash> - возвращается к указанному комиту
  • git status
  • git checkout -- . (если это нужно)

Видалення з історії відслідковування файлів в GIT

git rm -r --cached public/mix-manifest.json
git rm -r --cached public/css

echo 'public/mix-manifest.json' >> .gitignore
echo 'public/css/' >> .gitignore

git add .
git commit -m 'fix tracked filed for git'

Використання власного репозиторію

If you use SSH public key, add repositories section in your project composer.json file:

{

    "repositories": [
        {
            "type": "vcs",
            "url": "git@gitlab.com:its-dev-first/info/packages/laravel/its-lte.git"
        }
    ]
}

If you known the login/password to repository, use the following method:

{
    
    "repositories": [
        {
            "type": "vcs",
            "url": "https://gitlab.com/its-dev-first/info/packages/laravel/its-lte.git"
        }
    ]
}

Run from the command line:

composer require fomvasss/laravel-its-lte

Використання локального репозиторію

Наприклад, маємо наступну файлову структуру:

- www
   - laravel-site.test
      - app
      - composer.json
   - vendor
      - fomvasss
         - laravel-url-aliases
	 - laravel-lte3
  1. В проекті в composer.json вказати секцію:

Вказати шлях до папки репозиторію:

{
    "repositories": [
        {
            "type": "path",
            "url": "../vendor/*",
            "options": {
                "symlink": true
            }
        }
   ],

Або ж вказати шлях до пакету в репозиторії:

{
    "repositories": [
        {
            "type": "path",
            "url": "../vendor/fomvasss/laravel-url-aliases",
            "options": {
                "symlink": true
            }
        },
        {
            "type": "path",
            "url": "../vendor/fomvasss/laravel-last-visit",
            "options": {
                "symlink": true
            }
        }
   ]
}
  1. Ставимо пакет (з вітки master):
composer require fomvasss/laravel-lte3:dev-master --prefer-source

Або ж з ін. тега чи вітки (1.x, dev-lang-prefix):

composer require "fomvasss/laravel-lte3":"1.x-dev" --prefer-source
composer require "fomvasss/laravel-lte3":"dev-lang-prefix" --prefer-source

Установка с указанного репозитория

В composer.json на первый уровень добавать секцию:

{
"repositories": [
	{
		"type": "vcs",
		"url": "git@bitbucket.org:fomvasss/laravel-taxonomy.git"
	},
	{
		    "type": "vcs",
		    "url": "https://github.com/Tarik02/expression-generator"
	}
]
}

Запустить:

    composer require fomvasss/laravel-taxonomy

установка с нужной ветки

composer require fomvasss/laravel-lte3:1.x-dev
composer require irazasyed/telegram-bot-sdk:dev-develop

Composer memory limit

php -d memory_limit=-1 /usr/local/bin/composer require  fomvasss/laravel-url-aliases:^3.2

Composer

-prefer-source: Install packages from source when available. --prefer-dist: Install packages from dist when available. --ignore-platform-reqs: ignore php, hhvm, lib-* and ext-* requirements and force the installation even if the local machine does not fulfill these. See also the platform config option. --dry-run: Simulate the command without actually doing anything. --dev: Install packages listed in require-dev (this is the default behavior). --no-dev: Skip installing packages listed in require-dev. The autoloader generation skips the autoload-dev rules. --no-autoloader: Skips autoloader generation. --no-scripts: Skips execution of scripts defined in composer.json. --no-plugins: Disables plugins. --no-progress: Removes the progress display that can mess with some terminals or scripts which don't handle backspace characters. --optimize-autoloader (-o): Convert PSR-0/4 autoloading to classmap to get a faster autoloader. This is recommended especially for production, but can take a bit of time to run so it is currently not done by default. --lock: Only updates the lock file hash to suppress warning about the lock file being out of date. --with-dependencies: Add also all dependencies of whitelisted packages to the whitelist. --prefer-stable: Prefer stable versions of dependencies. --prefer-lowest: Prefer lowest versions of dependencies. Useful for testing minimal versions of requirements, generally used with --prefer-stable.

Local Composer Package Development

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment