Skip to content

Instantly share code, notes, and snippets.

@AlexMcowkin
Created March 24, 2015 14:48
Show Gist options
  • Save AlexMcowkin/3461e77d77157f416473 to your computer and use it in GitHub Desktop.
Save AlexMcowkin/3461e77d77157f416473 to your computer and use it in GitHub Desktop.
Git/github list commands
// ----------глобальные настроики---------
git config --global user.name "alexandr makovkin"
git config --global user.email "info@makovkin.com"
git config --global core.editor "notepad.exe -wl1"
git config --global color.ui true
// ---------пльзовательские настроики---------
git config user.name "alexandr makovkin"
git config user.email "info@makovkin.com"
git config core.editor "notepad.exe -wl1"
git config color.ui true
!!! - соединение через ssh
/*********************************************************/
/ -----------ИНИЦИАЛИЗАЦИЯ----------- /
git init
git add .
git add file.name
git commit -m "some text explain what we did"
-стараться делать строку не более 72 символов (не большие описания)
-описывать что делает комит
/*********************************************************/
/ -----------ЛОГИРОВАНИЕ----------- /
git log
git lon -n 3 - просмотреть последние 3 комита
git log --since=2014-02-23 просмотреть комиты начиная с 2014-02-23
git log --untill=2014-02-23 просмотреть комиты до 2014-02-23
git lod --author="alexander" посмотреть комиты Alexnander
git log --grep="some text" поск комитов в описании которых есть some text
gil log --oneline показать короткий вариант
git log --since="2 weeks ago" --until="3 days ago"
git log branch_name логи указанной ветки [после названия ветки можно использовать вышеуказанные параметры]
/*---------статус----------*/
git status
/*--------разница----------*/
git diff показать разницу между файлами в репозитории и рабочей папке
git diff filename.php показать разницу между файлом в репозитории и рабочей папке
git dif --staged показать разницу между файлами в репозитории и в буфере
git diff 2j548ds63hjsd показать разницу между файлами репозитория 2j548ds63hjsd и рабочей папки
git diff 2j548ds63hjsd filename.txt показать разницу между файлом filename.txt репозитория 2j548ds63hjsd и рабочей папкой
git diff 2j548ds..5d564dsd6 показать разницу между файлами репозитория 2j548ds и 5d564dsd6
git diff 2j548ds..5d564dsd6 filename.txt показать разницу между файлом filename.txt репозитория 2j548ds и 5d564dsd6
git diff branch..new_branch показать разницу между ветками branch и new_branch
/*-------------------------*/
git show 1a233dd8fd
/*********************************************************/
/*****************УДАЛЕНИЕ********************************/
1ая ситуация: [удаляем файл сами ручками]
и потом пишем команду
git rm filename.txt
в этом случаепроисходит удаление файла из репозитория (он удаляется из рипозитория, но не физически)
далее git add filename.txt
и git commit -m "коментарий"
2ая ситуация: [удаляем файл через git]
git rm filename.txt
в этом случаепроисходит удаление файла из репозитория (он удаляется физически) и изменения атоматом заносятся в буфер
и чтоб эти изменения занести в репозиторий, то надо git commit -m "комментарий"
/*********************************************************/
/*****************ПЕРЕМЕЩЕНИЕ и ПЕРЕИМЕНОВЫВАНИЕ**********/
git mv filename.txt newfile.txt
git mv filename.txt folder/filename.txt
/*********************************************************/
/********************ОТМЕНА ИЗМЕНЕНИЙ*********************/
/--- вернуть измениея файла
git checkout -- filename.txt
вернет последние состояние файла из репозитория (файл в проекте будет перезаписан файлом из репозитория)
/--- удалить файл из буфера
git reset HEAD filename.txt
/-- изменить коммит (!!! можно менять только последний коммит !!!)
git commit --amend -m "some comment for this commit"
эта команда позволяет внести изменения в последний сделанный комит.
/--
git checkout 12a2er556tysa -- filename.txt
эта команда переносит файл из комита с хэшэм 12a2er556tysa в буфер
затем можно выполнить git reset HEAD filename.txt,
чтобь вернуть файл в рабочую дерикторию
git reset --soft 34as345dsad5asd76as5
перемещаем указатель на комит с хешем 34as345dsad5asd76as5
/*------------------------------------------------------------*/
/*--------------------GITIGNORE-------------------------------*/
/*------------------------------------------------------------*/
- в папке с проектом создать файл .gitignore
- в этом файле записать те файлы, которые не должен учитывать git
# так обозначаются коментарии
/assets/video/ - будут проигнорированны все вложеные файлы и папки в папке video
*.zip - будут проигнорированные все zip архивы в текущей папке
!/assets/video/adv.mp4 - файл adv.mp4 будет включен в список индексации
пусть раньше у нас был файл filename.txt и мы его отслеживали.
но теперь решили добавить его в .gitignore
git rm --cached filename.txt
-эта команда удаляет filename.txt из буфера, но не из рабочей папки.
!!! чтоб отслеживать пустую папку нужно добавить в нее пустой файл .gitkeep
/*------------------------------------------------------------*/
/*--------------------ПРОСМОТР СОДЕРЖИМОГО КОМИТА-------------*/
/*------------------------------------------------------------*/
просмотреть список файлов, которые находятся в папке foldername,
которые входят в последний комит
git ls-tree HEAD foldername/
просмотреть список файлов, которые входят в последний комит
git ls-tree HEAD
просмотреть список файлов, которые входят в ПРЕДПРЕДпоследний комит
git ls-tree HEAD~2
/*--------------------------------------*/
/*--------------------ВЕТКИ-------------*/
/*--------------------------------------*/
// посмотреть на какой ветке мы сейчас находимся
git branch
// создать ветку
git branch new_vetka
// переключиться на ветку new_vetka
git checkout new_vetka
// переименовать ветку
git branch -m old_name new_name
// удалить ветку (сперва нужно перейти на другую ветку, так как git не может удалить ветку в которой сейчас находишься)
git branch -d branch_name
/*----слияние веток------*/
чтоб сделать слияние developingBranch к productionBranch
нужно переключиться на productionBranch и ввести команду
git merge developingBranch
/*----конфликты при слиянии веток------*/
// отменить слияние
git merge --abort
// разрешение конфликтов
если при слиянии веток произошел конфликт, то
открываем файл и находим проблемные места.
они помечаются так:
<<<<<<<<<HEAD
============
далее нужно заменить данные в файле на те,
которые есть в векте, которую мы присоединяем.
после внесенных изменений делаем
git add filename.txt
git commit
и все. слияние должно произойти успешно.
/*-------------------------------------------------------*/
/*--------------------УДАЛЕННЫЕ РЕПОЗИТОРИИ--------------*/
/*-------------------------------------------------------*/
origin/master - это локальный бранч, которы ссылается на удаленый сервер
git remote - выведет список всех удаленый репозиториев, принадлежащих этому проекту
git remote add origin https://github.com/AlexMcowkin/zawebisdrupal.git
этой командой мы связываем локальный проект с удаленым репозиторием
(уазываем ссылку на удаленый репозиторий)
git remote rm origin - этой командой мы удаляем ссылку на удаленый репозиторий
git push -u origin master - этой командой мы отправляем на удаленый репозиторий origin
локальный репозиторий master (где master это название бранча)
если хотим послать другую ветку, то пишем
git push -u origin new_branch
// создание локальной копии репозитория
git clone https://github.com/AlexMcowkin/zawebisdrupal.git
git clone https://github.com/AlexMcowkin/zawebisdrupal.git folder_name
!!! если не указать название папки, то git создаст папку с названием zawebisdrupal
// синхронизировать локальную копию с удаленной
git fetch origin
но чтоб эти изменения с удаленого репозитория были в локальных файлах то надо еще сделать
git merge origin/master
// создание локального бранча на основе удаленого бранча
git branch some_branch origin/some_branch
// удаление удаленых бранчей
git push origin --delete some_branch
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment