Ответить
1
Шпаргалка по GIT
Отправлено: 23 Дек 2013#1
Уже давненько пользуюсь ГИТом, но некоторые команды используются крайне редко и каждый раз приходится вспоминать как то или иное действие сделать правильно. По-этому и решил сделать нечто вроде шпаргалки + может еще кому-то поможет.
Клонирование репозитория
Обычно, если мы находимся в папке http, и выполним команду
то репозиторий скопируется в папку http/try_git, что не всегда удобно, ведь обычно мы хотим склонировать репозиторий именно в ту папку в которой находимся. Для этого надо просто добавить точку в конце команды
Алиасы и шорткаты для GIT
Файл gitconfig (обычно в папке .git)
Как видите мы добавили в наш конфиг секцию alias и задали в ней список коротких команд. Например вместо checkout мы теперь можем писать co.
Коммит и отмена изменений
Для того, чтобы закоммитить изменения на сервер надо сделать несколько шагов
Если же нам надо забрать изменения с сервера
Отменить коммит(fdd46458a9 - хэш коммита)
Перенести только один коммит из одной ветки в другую
Эта команда перенесет коммит и сразу сделает новый коммит с этими изменениями
А тут ключ -n указывает что изменения надо лишь перенести, но не делать нового коммита
Еще один вариант отмены изменений
Если мы отменим коммит командой revert, то из истории коммитов он не пропадет, а добавиться еще один коммит (Revert: commit_name).
Если же нам необходимо удалить коммит и из истории тоже, мы можем сделать так
Отмена изменений в конкретном файле
Допустим вы изменили какой-то файл и еще не коммитили его, но уже поняли что вам надо отменить изменения. В таком случае можно выполнить следующую команду.
Ветки
Часто бывает нужно создать ветку(например для версии CMS)
Флаг -b указывает, что сразу после создание ветки мы переключимся на нее. Эта команда эквивалентна
Буду только рад, если другие укажут на мои возможные ошибки
Клонирование репозитория
Обычно, если мы находимся в папке http, и выполним команду
Code:
git clone https://github.com/Name/try_git.git
Code:
git clone https://github.com/Name/try_git.git .
Алиасы и шорткаты для GIT
Файл gitconfig (обычно в папке .git)
Code:
[alias]
co = checkout
ci = commit
st = status
br = branch
hist = log --pretty=format:\"%h %ad | %s%d [%an]\" --graph --date=short
type = cat-file -t
dump = cat-file -p
co = checkout
ci = commit
st = status
br = branch
hist = log --pretty=format:\"%h %ad | %s%d [%an]\" --graph --date=short
type = cat-file -t
dump = cat-file -p
Как видите мы добавили в наш конфиг секцию alias и задали в ней список коротких команд. Например вместо checkout мы теперь можем писать co.
Коммит и отмена изменений
Для того, чтобы закоммитить изменения на сервер надо сделать несколько шагов
Code:
# Добавить нужные файлы в индекс
git add .
# Сделать коммит (в гите это локально)
git commit -m 'Test commit'
# Отправить это все на сервер (в скобках не обязательные параметры)
git push [origin master]
git add .
# Сделать коммит (в гите это локально)
git commit -m 'Test commit'
# Отправить это все на сервер (в скобках не обязательные параметры)
git push [origin master]
Если же нам надо забрать изменения с сервера
Code:
git pull
Отменить коммит(fdd46458a9 - хэш коммита)
Code:
git revert fdd46458a9
Перенести только один коммит из одной ветки в другую
Code:
git cherry-pick BUG_FIX_TAG
Code:
git cherry-pick BUG_FIX_TAG -n
Еще один вариант отмены изменений
Если мы отменим коммит командой revert, то из истории коммитов он не пропадет, а добавиться еще один коммит (Revert: commit_name).
Code:
git revert fdd46458a9
# Не смотря на то что мы откатили коммит, в истории он остался
git hist
# Не смотря на то что мы откатили коммит, в истории он остался
git hist
Если же нам необходимо удалить коммит и из истории тоже, мы можем сделать так
Code:
# В отличии от revert тут мы указываем хэш не того коммита, который хотим отменить, а того, к которому откатываемся
git reset --hard fdd46458a9
# Так мы не увидим в истории сброшенные коммиты
git hist
# Тем не менее так они все равно видны
git hist --all
git reset --hard fdd46458a9
# Так мы не увидим в истории сброшенные коммиты
git hist
# Тем не менее так они все равно видны
git hist --all
Отмена изменений в конкретном файле
Допустим вы изменили какой-то файл и еще не коммитили его, но уже поняли что вам надо отменить изменения. В таком случае можно выполнить следующую команду.
Code:
git checkout -- <file>
Ветки
Часто бывает нужно создать ветку(например для версии CMS)
Code:
git checkout -b new_branch
Флаг -b указывает, что сразу после создание ветки мы переключимся на нее. Эта команда эквивалентна
Code:
git branch new_branch
git checkout new_branch
git checkout new_branch
Буду только рад, если другие укажут на мои возможные ошибки
Отредактировано автором 27 Мар 2014
Я горжусь тем, что создал . И люблю нашу команду)
Отправлено: 23 Дек 2013#2
Eсть такая прога от называется SourseTree ()
В общем знание английского чуть чуть и можно не вспоминать о командах git. Лично я всегда с ней.
В общем знание английского чуть чуть и можно не вспоминать о командах git. Лично я всегда с ней.
Соразработчик Atom-M CMS
Отправлено: 16 Янв 2014#3
Еще актуальный вопрос как правильно принимать изменения, чтобы не потерять ни свои, ни чужие?
Я так понимаю, сперва коммитим свои, за тем pull и за тем push. Но не уверен.
Я так понимаю, сперва коммитим свои, за тем pull и за тем push. Но не уверен.
Я горжусь тем, что создал . И люблю нашу команду)
Отправлено: 19 Мар 2014#4
а как написать команду git push сразу учитывая пароль, который эта команда потребует?(тоесть вводить пароль сразу в команде)
Соразработчик Atom-M CMS
Отправлено: 7 Мая 2014#5
Ой я даже хз, как то не задавался вопросом.
Я горжусь тем, что создал . И люблю нашу команду)
Отправлено: 5 Фев 2015#6
Работаю с git.
Пробую делать откат до комита, но не получается.
Создаю репозиторий. Вношу изменения на локальном сервере,пишу git add. потом git commit
Вношу изменения специально, чтобы потом их убрать (втестовом режиме).
Пытаюсь сделать откат,
пишу по-разному:
git reset--hard HEAD
git reset--hard <commit>
Откат неделается
synthaxiserrow unexpected token near 'newline'
После git reset--hard
вроде сделался откат
пишет
head now at... (то, что было в коменте моего предыдущего коммита)
захожу через браузер на сайт, отката нет (ни в базе ни вфайлах сайта)
денвер перезапускаю на всякий случай, без результата
что не так?
может его еще вытянуть как-то надо?
Пробую делать откат до комита, но не получается.
Создаю репозиторий. Вношу изменения на локальном сервере,пишу git add. потом git commit
Вношу изменения специально, чтобы потом их убрать (втестовом режиме).
Пытаюсь сделать откат,
пишу по-разному:
git reset--hard HEAD
git reset--hard <commit>
Откат неделается
synthaxiserrow unexpected token near 'newline'
После git reset--hard
вроде сделался откат
пишет
head now at... (то, что было в коменте моего предыдущего коммита)
захожу через браузер на сайт, отката нет (ни в базе ни вфайлах сайта)
денвер перезапускаю на всякий случай, без результата
что не так?
может его еще вытянуть как-то надо?
1
Зарегистрируйтесь или авторизуйтесь что бы писать
Сейчас online: 9. Зарегистрированных: 0. Гостей: 9.
