Skip to content

FGJ666/git_help

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 

Repository files navigation

Навигация

  • cd: Переход в директорию.
  • cd ..: Подняться на один уровень вверх.
  • cd ../..: Подняться на два уровня вверх.
  • cd ~: Перейти в домашнюю директорию.
  • cd /: Перейти в корневую директорию.
  • ls: Список файлов и папок.
  • ls -la: Список файлов и папок с подробной информацией.
  • ll -a: Список файлов и папок, включая скрытые.
  • ll: То же, что и ls -l.
  • pwd: Вывод пути к текущей директории.
  • tree: Вывод структуры каталогов в виде дерева.
  • find . -name "{имя}": Поиск файла по имени в текущей директории и подкаталогах.
  • locate {имя}: Быстрый поиск файла по имени (требует предварительной индексации).
  • du -sh {папка}: Вывод размера указанной папки.
  • df -h: Показать информацию о дисковом пространстве.
  • pushd {папка}: Перейти в директорию и сохранить текущую в стеке.
  • popd: Вернуться в директорию из стека.
  • alias: Показать все текущие алиасы.
  • unalias {имя}: Удалить алиас.
  • clear: Очистить терминал.

Создание и удаление

  • mkdir {название}: Создание папки.
  • mkdir {название1} {название2} {название3}: Создание нескольких папок одновременно.
  • mkdir -p directory1/directory2/directory3: Создание папок с родительскими каталогами.
  • rm {название}: Удаление файла или папки.
  • rm *: Удаление всех файлов в текущей директории.
  • rm *.{формат}: Удаление всех файлов в текущей директории заданного формата.
  • rmdir: Удаление пустого каталога.
  • rm -r {папка}: Удаление папки или нескольких папок.
  • rm -rf {директория}: Принудительное удаление каталога без подтверждения.
  • mv {название} {путь}: Перемещение файла.
  • mv {название} {новое название}: Переименование файла.
  • cp -r {папка1} {папка2}: Копирование папки рекурсивно.
  • touch {файл}: Создание пустого файла или обновление времени последнего доступа.
  • ln -s {файл} {ссылка}: Создание символической ссылки на файл.

Копирование и перемещение

  • cp {название1} {название2}: Копирование файла.
  • cp {название} {путь}: Копирование файла в другую директорию.
  • mv {название} {путь}: Перемещение файла.
  • mv {название} {новое название}: Переименование файла.
  • rsync -av {источник} {назначение}: Синхронизация файлов и папок.
  • scp {файл} user@host:{путь}: Копирование файла на удаленный сервер по SSH.
  • tar -cvf {архив.tar} {папка}: Создание архива из папки.
  • tar -xvf {архив.tar}: Извлечение содержимого архива.

Работа с файлами

  • cat {файл}: Вывод содержимого файла.
  • cat -n text.txt: Просмотр файла с нумерацией строк.
  • cat >test2: Создание файла и его редактирование.
  • touch test2: Создание файла.
  • cat test test1 test2 > test3: Запись текста из нескольких файлов в один (с перезаписью последнего).
  • cat test test1 test2 test3 | sort > test4: Отсортировать содержимое нескольких файлов и перезаписать в файл.
  • cd folder && ll: Перейти в папку и вывести все файлы в ней.
  • pbcopy < ~/.ssh/id_rsa.pub: Скопировать содержимое или clip.
  • head -n {N} {файл}: Вывод первых N строк файла.
  • tail -n {N} {файл}: Вывод последних N строк файла.
  • grep "{шаблон}" {файл}: Поиск строки по шаблону в файле.
  • wc -l {файл}: Подсчет количества строк в файле.
  • diff {файл1} {файл2}: Сравнение двух файлов.
  • file {файл}: Определение типа файла.
  • stat {файл}: Показать информацию о файле, включая размер и время последнего изменения.
  • chmod {права} {файл}: Изменение прав доступа к файлу.
  • chown {пользователь}:{группа} {файл}: Изменение владельца и группы файла.

Git

Инициализация репозитория

  • git init: Инициализация Git в текущей папке.
  • git remote add origin {url удаленного репоз.}: Соединение локального репозитория с удаленным.
  • git clone {url удаленного репозитория}: Скачивание удаленного репозитория.

Настройка пользователя

  • git config --global user.name "n.surname": Задать имя пользователя.
  • git config --global user.email "[email protected]": Задать email пользователя.
  • cat ~/.gitconfig: Просмотр содержимого config.
  • git config --list: Вывод всех настроек конфигурации.
  • git config --global core.editor {editor}: Установить текстовый редактор по умолчанию.
  • git config --global alias.{псевдоним} {команда}: Создание алиаса для команды Git.

Работа с коммитами

  • git add {имена файлов}: Добавить файлы к коммиту.
  • git add .: Добавить все измененные файлы к коммиту.
  • git commit -m "{message}": Сохранить изменения (коммит).
  • git commit -a -m "text": Создание коммита вместе с git add, кроме новых файлов.
  • git commit --amend --no-edit: Дополнить последний коммит, добавив в него файл. -no-edit оставляет сообщение коммита прежним.
  • git commit --amend -m "Новое сообщение": Изменить сообщение коммита.
  • git cherry-pick {commit hash}: Применить изменения из указанного коммита к текущей ветке.
  • git commit --allow-empty -m "Пустой коммит": Создание пустого коммита.
  • git commit --no-verify: Создание коммита, игнорируя хуки.
  • git commit -v: Создание коммита с показом изменений в редакторе.
  • git commit --squash {commit hash}: Объединение изменений из указанного коммита в текущий коммит.

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

  • git branch: Вывод списка имеющихся веток.
  • git branch {имя ветки}: Создать новую ветку.
  • git branch -d {имя ветки}: Удалить ветку, только если она была полностью объединена с другой.
  • git branch -D {название ветки}: Принудительное удаление ветки.
  • git checkout -b {название ветки}: Создать ветку и сразу переключиться на неё.
  • git checkout {имя ветки}: Переключиться на другую ветку.
  • git merge {имя ветки}: Слияние ветки.
  • git merge --abort: Отмена слияния.
  • git checkout -- {файл}: Отменить изменения в указанном файле.
  • git branch --merged: Показать ветки, которые были объединены с текущей.
  • git branch --no-merged: Показать ветки, которые не были объединены с текущей.
  • git switch {имя ветки}: Переключение на другую ветку (аналог git checkout).

Работа с удаленными репозиториями

  • git remote -v: Показать все удаленные репозитории.
  • git remote rm origin: Удалить удаленный репозиторий origin.
  • git push {имя репозитория} {название ветки}: Публикация коммитов в удаленный репозиторий.
  • git push -u origin branch_2: Публикация новой ветки в удаленный репозиторий и установка отслеживания.
  • git pull {имя репозитория} {название ветки}: Скачивание коммитов из удаленного репозитория.
  • git fetch origin: Загружает все изменения (коммиты, ветки и теги) из удаленного репозитория, но не сливает их с вашей текущей веткой.
  • git push --force: Принудительная отправка изменений в удаленный репозиторий.
  • git remote show origin: Показать информацию о удаленном репозитории.
  • git push origin --delete {имя ветки}: Удаление ветки на удаленном репозитории.
  • git fetch --prune: Удаление ссылок на удаленные ветки, которые были удалены.
  • git pull --rebase: Скачивание изменений и применение их на текущую ветку с использованием rebase.
  • git remote rename {старое имя} {новое имя}: Переименование удаленного репозитория.

Состояние и история

  • git status: Показать текущий статус изменений.
  • git log: Просмотр истории коммитов.
  • git log -p: Просмотр истории коммитов с изменениями в файлах.
  • git log --oneline: Сокращенный лог.
  • git show {№хэша}: Просмотр заданного коммита.
  • git reflog: Просмотр истории всех действий с коммитами.
  • git blame {файл}: Показать, кто и когда изменил каждую строку в файле.
  • git diff HEAD: Показать изменения в рабочем каталоге по сравнению с последним коммитом.
  • git diff {ветка1}..{ветка2}: Показать различия между двумя ветками.
  • git show {tag}: Показать информацию о теге.
  • git reflog expire --expire=now --all: Удалить все записи reflog.

Сравнение и восстановление

  • git diff: Показать различия между двумя наборами данных (ветками или коммитами).
  • git diff --staged: Показать различия между добавленными изменениями и последним коммитом.
  • git reset --hard {commit hash}: Откатить к указанному коммиту, удалив все незакоммиченные изменения.
  • git reset <файл>: Удаляет изменения из staging area, возвращая файл в состояние, в котором он был в последнем коммите.
  • git restore --staged {file}: Убрать файл из staging.
  • git restore {file}: Откатить изменения файла к последнему коммиту.
  • git rebase main: После выполнения этой команды все коммиты из вашей ветки будут перенесены на конец ветки main.
  • git revert {commit hash}: Создает новый коммит, который отменяет изменения, внесенные указанным коммитом.
  • git reset --soft HEAD~1: Откатить последний коммит, сохранив изменения в staging area.

Работа с тегами

  • git tag {имя}: Создание тега для текущего коммита.
  • git tag -d {имя тега}: Удаление тега.
  • git push origin {имя тега}: Отправка тега на удаленный репозиторий.
  • git push origin --tags: Отправка всех тегов на удаленный репозиторий.

Алиасы

  • git config --global alias.last 'log -1 HEAD': Создание псевдонима для команды log -1 HEAD.
  • git config --global alias.co checkout: Создание псевдонима для команды checkout.
  • git config --global alias.br branch: Создание псевдонима для команды branch.
  • git config --global alias.st status: Создание псевдонима для команды status.
  • git config --global alias.lg 'log --oneline --graph --decorate --all': Создание псевдонима для удобного просмотра истории коммитов.

.gitignore

Файл .gitignore позволяет исключать файлы и каталоги из отслеживания в Git. Он используется для указания паттернов файлов, которые Git должен игнорировать. Вот несколько примеров шаблонов, которые можно использовать:

  • Игнорировать все файлы с расширением .log:
    *.log
    
  • Игнорировать все временные файлы редактора Vim:
    *~
    
  • Игнорировать каталог node_modules:
    node_modules/
    
  • Игнорировать все файлы в каталоге temp, но не игнорировать сам каталог:
    temp/*
    !temp/
    
  • Игнорировать все .DS_Store файлы (часто встречается на MacOS):
    .DS_Store
    
  • Игнорировать все .env файлы:
    .env
    

Суффикс навигации ~N

Суффикс ~N используется для сравнения коммитов, начиная с коммита, который был N коммитов назад. Примеры использования:

  • git diff HEAD~1: Показать различия между текущим состоянием и состоянием одного коммита назад.
  • git diff feature/diff~1: Показать различия между текущим состоянием ветки feature/diff и состоянием одного коммита назад в этой ветке.
  • git diff 2ea56ab~: Показать различия между текущим состоянием и состоянием одного коммита назад от указанного коммита 2ea56ab.

Эти команды помогают увидеть изменения, внесенные в последние коммиты, и анализировать историю проекта.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published