Git. Работа с ветками

Показать список локальных веток:

git branch

Звездочка (*) слева от именем указывает в какой ветке мы находимся. Если включена подсветка командной строки (git config color.ui true), то имя текущей ветки будет отображено другим цветом.


Показать список удалённых веток:

git branch -r

Для отображения актуальной информации необходимо обновить данные с удаленного репозитория:

git fetch

Показать все ветки (локальные и удалённые):

git branch -a

Создать локальную ветку:

git branch <branch>

После создания новой ветки мы остаемся в текущей.


Создать локальную ветку из удалённой:

git branch <branch> <remote>/<branch>

Переключиться на другую ветку:

git checkout <branch>

Удалить локальную ветку

git branch --delete <branch>

// сокращенный вариант:
git branch -d <branch>

Удалить удалённую ветку

git push <remote> --delete <branch>

// или с версии 1.7.0:
git push <remote> :<branch>

// сокращенный вариант с версии 2.8.0:
git push <remote> -d <branch>

Показать какие отслеживаемые ветки установлены

git branch -vv


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

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

git branch -m <new_branch>

Переименовать ветку с именем <branch_name>:

git branch -m <branch> <new_branch>

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

git branch -m <new_branch>
git push <remote> :<old_branch>
git push -u <remote> <new_branch>

Отслеживание

git branch --set-upstream-to|-u <remote>/<branch>

Поиск по артикулу в компоненте bitrix:search.title

Указанный ниже код необходимо добавить в файл init.php.

AddEventHandler("search", "BeforeIndex", "BeforeIndexHandler");

function BeforeIndexHandler($arFields) {
	if(!CModule::IncludeModule("iblock")) // подключаем модуль
		return $arFields;

	if(($arFields["MODULE_ID"] == "iblock") && ($arFields["PARAM2"] == 16)) {
		$dbProps = CIBlockElement::GetProperty( // Запросим свойства индексируемого элемента $arFields["PARAM2"], // BLOCK_ID индексируемого свойства
			$arFields["ITEM_ID"], // ID индексируемого свойства
			array(), // Сортировка (можно упустить)
			array("CODE" => "CML2_ARTICLE") // CODE свойства (в данном случае артикул)
		);
	
		if($arProp = $dbProps->Fetch()) {
			$arFields["TITLE"] .= " ".$arProp["NAME"]; // Добавим свойство в конец заголовка индексируемого элемента
		}
	}
	
	return $arFields;
}

Команды Linux


Изменить права рекурсивно для папок 755 и файлов 644

Только для папок:

find . -type d -exec chmod 755 {} \;

Только для файлов:

find . -type f -exec chmod 644 {} \;

Работа с архивом .tar.gz

Как создать архив .tar.gz

tar -cvf file.tar /full/path - создать .tar
tar -czvf file.tar.gz /full/path - создать .tar.gz (архив)
tar -cjvf file.tar.bz2 /full/path - создать .tar.bz2 (архив)

Синтаксис:

tar [-ключи] [название архива] [путь, что запаковать]

Как открыть (распаковать) .tar

Чтобы распаковать запаковывай .tar:

tar -xvf file.tar.gz

Синтаксис:

tar [-ключи] [название архива]

Ключи архиватора

с — (Create) создать архив.
z – создает архив .tar.gz
j — создает архив .tar.bz2
x — (eXtract) позволяет вам извлекать файлы из архива.
v — делает вывод tar подробным. Это означает, что на экран будут выведены все найденные в архиве файлы. Если эта опция опущена, информация, выводимая в процессе обработки, будет ограничена.
f — является обязательной опцией. Без неё tar пытается использовать магнитную ленту вместо файла архива.
z — позволяет вам обрабатывать архив, сжатый gzip’ом (с расширением .gz). Если вы забудете указать эту опцию, tar выдаст ошибку. И наоборот, эта опция не должна использоваться для несжатых архивов.
t — (Test) просмотреть содержимое архива.

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

[~]# man tar

В файлах .tar можно хранить несколько папок (структуру папок и файлов).
Лучше использовать с ключами для архивации файла .tar, чтобы в результате получились файлы с расширением .tar.gz (файл .tar сжатый архиватором gzip) или .tar.bz2 (файл .tar сжатый bzip2).
bzip2 лучше сжимает, но с gzip более распространён, поэтому лучше сжимать этим архиватором.
Если у вас установлен WinRAR, то проблем с открытием .tar.bz2 и .tar.gz не будет.

Firefox. Как убрать сообщение при вводе логина и пароля: Это соединение не защищено

В релизе FireFox 52 изменён вывод предупреждения о проблемах с безопасностью в случае обращения к страницам, содержащим форму ввода пароля, без использования HTTPS. Вместо индикатора наличия проблем с безопасностью в адресной строке реализовано контекстное предупреждение, выводящееся непосредственно рядом с полем ввода пароля. Кроме того, при открытии страницы с формой входа по HTTP теперь отключается автозаполнение имени пользователя и пароля.

Это соединение не защищено.

Отключить это сообщение можно в настройках about:config изменив следующие нстройки:

security.insecure_field_warning.contextual.enabled=false
security.insecure_password.ui.enabled=false
signon.autofillForms.http=true

Шпаргалка Bitrix

Подключение неразделенного пролога:

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");

Если по тем или иным причинам необходимо разделить пролог на служебную (prolog_before.php) и визуальную (prolog_after.php) части, то используются следующие коды:

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
...
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_after.php");

Подключение неразделенного эпилога:

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");

Если по тем или иным причинам необходимо разделить эпилог на визуальную (epilog_before.php) и служебную (epilog_after.php) части, то используются следующие коды:

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_before.php");
...
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php");

https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=43&LESSON_ID=2814&LESSON_PATH=3913.4608.4773.2814

Скролл сверху и снизу блока

Source: http://jsfiddle.net/Deonis/BEFd2/1/

HTML

<div class="container">
  <div class="topscroll">
    <div class="fake"></div>
  </div>
  <div class="content">
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
  </div>
</div>

CSS

.container {
  width: 300px;
  height: 200px;
  overflow-x: scroll;
  overflow-y: hidden;
}
.content {
  width: 800px;
}
.topscroll {
  position: absolute;
  width: 300px;
  height: 20px;
  overflow-x: scroll;
}
.fake {
  height: 1px;
}

JavaScript

var container = $('.container');
var topscroll = $('.topscroll');

$('.fake').width($('.content').width());

topscroll.scroll(function(e){
  container.scrollLeft($(this).scrollLeft());
});
container.scroll(function(e){
  topscroll.scrollLeft($(this).scrollLeft());
});