Category Archives: Version control
PhpStorm и git: добавить в свою ветку определенный коммит
Для этого в git существует cherry-pick. Как оно работает в PhpStorm http://www.jetbrains.com/phpstorm/webhelp/applying-changes-from-a-specific-commit-to-other-branches-cherry-picking.html
Git diverged
Если при пулле ветки в гите по git ststus пишет, что remote diverged и так далее (т.е. есть расхождения локального и удаленного репозитория), то надо удалить локальную ветку.
1 |
git branch -d [название локальной ветки] |
Потом взять из origin заново
1 |
git checkout origin [название ветки в репозитории] |
Альтернативный способ — применить злостный хак:
1 |
git push origin :[название локальной ветки] |
!это удалит ветку локально! А потом
1 |
git push origin [название ветки в репозитории]:[название локальной ветки] |
это пересоздаст локальную ветку. При этом …
Создание веток git-репозитория из PhpStorm
Нужно создать локальную ветку и запушить. Ссылки: http://www.jetbrains.com/phpstorm/webhelp/creating-a-new-branch.html http://www.jetbrains.com/phpstorm/webhelp/uploading-a-local-git-repository-push.html http://devnet.jetbrains.net/message/5455304?tstart=0
Работа с git в команде — gitflow
https://github.com/nvie/gitflow. Это надстройка над гитом, которая позволяет автоматизировать работу с репозиториями при обычной работе в коллективе. Ничего сверхъестественного — ветка develop, от которой отходят ветки features (и по завершении в неё мёржатся); ветки вида release/…, они создаются из девелопа для нового релиза; после релиза и тестов на проде он мёржится в master; также есть ветка …
Конвертирование проекта из SVN в Git
В fedora linux:
1 2 3 4 5 6 7 8 9 10 11 |
$ sudo yum install git-svn $ cd ~/git-svn-repo $ git svn clone http://[url]/main/trunk/[source] $ git config svn.authorsfile ~/users $ git ~/git-svn-repo ~/git-repo $ cd ~/git-repo $ git remote set-url --push origin [name]@[site]:[repo] // gitorious@git.uncc:mosfm/mos-fm-site.git $ git push origin master |
После этого в ~/git-repo будет «чистый» git-репозиторий. Ссылки: http://www.johnclarkemills.com/2011/01/01/migrate-from-svn-to-git-with-history/ http://gitready.com/beginner/2009/02/04/converting-from-svn.html http://redlinesoftware.com/blog/2008/2/24/converting-subversion-repositories-to-git http://stackoverflow.com/questions/79165/how-to-migrate-svn-with-history-to-a-new-git-repository http://www.jonmaddox.com/2008/03/05/cleanly-migrate-your-subversion-repository-to-a-git-repository/ http://stackoverflow.com/questions/7784951/how-to-begin-committing-via-git-to-bitbucket-not-seeing-changes http://lists.debian.org/debian-devel/2011/07/msg00522.html http://git.or.cz/course/svn.html Чтобы слить несколько свн-репозиториев в один, можно воспользоваться советом про subtree merge — http://stackoverflow.com/questions/1425892/how-do-you-merge-two-git-repositories
Конвертирование проекта из SVN в Mercurial
В fedora linux:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
$ sudo yum install mercurial $ cd ~/converted $ hg convert $ hg help extensions $ hg help config $ sudo nano /etc/mercurial/hgrc [--пишем--] [extensions] convert = $ hg convert http://[url]/main/trunk/source $ cd ~/hg-repo $ hg init $ hg clone ~/converted |
Настройка TortoiseHg под Ubuntu
Настройки хранятся в файле ~/.hgrc
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
[ui] merge = kdiff3 username = bullgare [extensions] extdiff = # для meld в качестве visual diff tool hgshelve=/path/to/hgshelve.py [extdiff] meld = # для meld в качестве visual diff tool #kdiff3 = kompare = [tortoisehg] authorcolor = True longsummary = True postpull = rebase vdiff = kompare editor = meld vdiffnowin = True |
Для shelve нужно скачать скриптик. Список доступных команд: http://manpages.ubuntu.com/manpages/lucid/man1/hgtk.1.html Для работы в командной строке нужно поработать с файлом настроек (/etc/mercurial/hgrc.d/hgext) — раскоментировать hgext.hgk для доступности команды hg view, hgext.rebase, hgext.record.
Работа в hg с rsa-ключом под linux
Нужно положить в папку ~/.ssh файл id_rsa (или id_dsa) со сгенерированным ключом. У меня был ключ, сгенерированный puttygen — для работы под windows. Для конвертации достаточно загрузить файл приватного ключа в puttygen и сконвертировать в нужный формат, после чего в linux положить этот файл в указанное место.