background preloader

Git

Facebook Twitter

Странный глюк Git, чуть не стоивший 10 часов работы. Я провел весь вчерашний день, напряженно работая, чтобы закрыть долгую и порядком надоевшую задачу. Было достаточно поздно, когда я закомитил изменения и отправил на пуш. Гит привычно ругнулся что не может, потому что есть свежие правки. Окей, pull, push. Теперь вроде нормально, можно идти спать. Проверю на тестовом сервере и потом пошлю ссылку коллегами, решил я напоследок. На следующий день я еще раз сделал деплой на тестовый сервер, но он упорно показывал старую версию. Что же произошло и как это исправить? Через некоторые время Google вывел меня на пост Recovering From a Disasterous Git-rebase mistake, в котором у парня проблемы были точь-в-точь как мои. К счастью, в случае с Git не все потеряно.

Git checkout -b itsavedmyass b6d7cf192c46 После чего надо переключиться в рабочую ветку и смержить потерянные правки. До сих пор не понятно, что привело к таким катастрофическим последствиям. David Grayson's blog: Getting git 1.8.0 to work with PuTTY/plink/pageant 0.62. Машина времени в git. В последнее время мои коллеги начинают знакомство с git'ом. И один из интересующих их вопросов — как откатиться до определённой ревизии. В интернете можно найти набор команд, но хочется, чтобы было понимание каждой из них. Баловство с комадами git'а без понимания может привести к потере истории разработки.

В этой статье я хочу рассказать о командах git checkout и git reset с ключами --soft и --hard. Здесь кружочками обозначены коммиты. Заострим наше внимание на двух указателях: master и HEAD. master указывает на самый старший коммит в ветке под названием master (эта ветка создаётся при инициализации репозитория). Указатель HEAD в нашем случае указывает на master, а master — на коммит d79fb… Архиважно понять, что текущее состояние неизменённых файлов, находящихся под контролем версий, есть тот коммит, на который указывает HEAD. Перенос указателя HEAD (git checkout) Откат по истории коммитов: Неужели мы потеряли всю историю? Для прояснения механизма git checkout создадим новую ветку devel: Git Wizardry. Resources For Learning Git.

Git is an extremely powerful and sophisticated system for distributed version control. Apart from offering a novel approach to source code management, Git offers a great deal of features. Sadly, learning how to use Git can be confusing for anyone, not just beginners. As a result, in this roundup, we have collected some of the best resources for learning Git to help you initially get started with Git, and then, eventually mastering it.

Git – The Simple Guide by Roger Dudler If you are looking for a quick resource to help you get started with Git, this one by Roger Dudler will prove really useful to you. Git – The Simple Guide → Git From the Bottom Up by John Wiegley As the name suggests, Git From the Bottom Up teaches Git from basic to advanced levels. Git From the Bottom Up → Git Ready Learning Git One Commit at a Time by Nick Quaranto Git Ready is more of a documentation cum blog related to posts and content about Git. Git Ready Learning Git One Commit at a Time → Pro Git Ebook → 5. Making changes | Git How To. Goals To learn to monitor the working directory’s state 01 Changing the “Hello, World” page Let’s add some HTML-tags to our greeting.

Change the file contents to: File: hello.html <h1>Hello, World! 02 Checking the status Check the working directory’s status. Run: git status You will see … Result: $ git status # On branch master # Changes not staged for commit: # (use "git add <file>... " to update what will be committed) # (use "git checkout -- <file>... " to discard changes in working directory) # # modified: hello.html # no changes added to commit (use "git add" and/or "git commit -a") The first important ascpect here is that git knows hello.html file has been changed, but these changes are not yet committed to the repository. Another aspect is that the status message hints about what to do next. 03 Next ... Staging the changes. Коаны Гита. По мотивам «Коанов Вима». ТишинаЧто-то одно, но хорошоТолько богамХобгоблинДлинное и короткое Python-программистка передала свой файл ~/.gitconfig мастеру Гиту.

Среди строчек кода было следующее: [alias]; Явное лучше подразумеваемового. Если мы хотим выполнить слияние,; нам следует сделать это самим.pull = pull --ff-only Мастер Гит кивнул. «Но мастер Гит, разве я не просила в моей конфигурации использовать только fast-forward?» Мастер Гит посмотрел на неё, кивнул и ничего не сказал. «Тогда почему же вы не предупредили меня о проблеме с моей конфигурацией?» Мастер Гит ответил: «В ней не было проблем.» Месяцы спустя, когда программистка по другой причине читала git --help config, она достигла просветления. Unix-программистка работала на кубикловой ферме.

«Для меня честь встретить вас, мастер Гит», — сказала она. «Несомненно», — ответил мастер Гит. «Как я могу перейти к другой ветке?» «Используй git checkout.» «Как мне создать ветку?» После третьего ответа программистку постигло просветление. Что нам стоит Git настроить! Дарова, хабр! (ничего оригинальнее не придумал) Сомневаюсь что эта заметка тянет на полноценный пост, но я все же оставлю ее здесь. О чем же пойдет речь? Все мы слышали о Git. Все мы знаем что он — хорош. Но лишь немногие пытаются что-то с ним делать, как-то его протвикерить. Так, мне уже немного надоело писать этот, по сути, бессмысленный вступительный текст, так что давайте уже начнем что-то делать.

Что такое .gitconfig и зачем он нужен? В стандартной поставке системы контроля версий Git есть замечательный файл — .gitconfig. Не знаю как на других системах, но в Linux он лежит в ~. Открываем .gitconfig в удобном для вас текстовом редакторе (для меня это nano). Подсветка вывода Читать вывод Git'а «всухую» достаточно сложно. [color] ui = true Себя записываем Зачем это нужно? [user] name = Anonymous Doody email = anonymous.doody@anonymous.com Шаблон коммитов Не знаю как другие хабровчане работают, но в основном мои коммиты идут в KDE Edu проекты. [commit] template = ~/.commit-template Заключение.

Git - the simple guide - no deep shit! Git - the simple guide just a simple guide for getting started with git. no deep shit ;) by Roger Dudler credits to @tfnico, @fhd and Namics this guide in deutsch, español, français, indonesian, italiano, nederlands, polski, português, русский, türkçe, မြန်မာ, 日本語, 中文, 한국어 Vietnamese please report issues on github What is VPP? It's fast, flexible, and inexpensive. Learn more in this eBook.ads via Carbon setup Download git for OSX Download git for Windows Download git for Linux create a new repository create a new directory, open it and perform a git init to create a new git repository. checkout a repository create a working copy of a local repository by running the command git clone /path/to/repository when using a remote server, your command will be git clone username@host:/path/to/repository workflow add & commit You can propose changes (add it to the Index) using git add <filename> git add * This is the first step in the basic git workflow.

Pushing changes branching update & merge tagging log. Git book.