Category Archives: Version control
Git: Перелить локальный репозиторий в новый удалённый (remote)
1 |
git remote set-url origin git://new.url.here |
http://stackoverflow.com/questions/2432764/change-the-uri-url-for-a-remote-git-repository
1 2 3 |
git remote remove origin git remote add origin <repo_url> git push origin --all // git push --follow-tags |
http://stackoverflow.com/questions/6865302/push-local-git-repo-to-new-remote-including-all-branches-and-tags
Написал Grunt-таск для бэкапа wordpress в репозиторий
Идея — делать бэкапы кода и базы в репозиторий на bitbucket. Запуск через крон. Сам код (если кому интересно) опубликую попозже. А вот полезные ссылки: https://npmjs.org/package/grunt-git (чтобы склонировать проект) https://npmjs.org/package/grunt-contrib-copy (для копирования кода) https://npmjs.org/package/grunt-file-process (для распарсивания конфига, чтобы узнать настройки доступа к базе) https://npmjs.org/package/grunt-mysql-dump (хотел дампить базу, но не взлетело) https://npmjs.org/package/grunt-shell (для дампа базы, для …
tig для просмотра git-логов в командной строке
Установка
1 |
brew install tig |
Запускаем команду tig в директории с git-репозиторием. Ждём немного — и вот у нас уже дерево коммитов с ветками. Перемещаемся стрелками ↓↑, затем нажимаем d и смотрим diff, после чего нажимаем q для возврата в главное меню. http://jonas.nitro.dk/tig/screenshots/ http://habrahabr.ru/post/206606/
Git: вывести все файлы с конфликтами
1 |
git ls-files -u |
Git: выделить директорию в отдельный репозиторий
Вот эта команда
1 |
git filter-branch --subdirectory-filter MyLibraryName -- --all |
Ссылки: http://git-scm.com/docs/git-filter-branch https://confluence.atlassian.com/display/BITBUCKET/Split+a+Repository+in+Two#SplitaRepositoryinTwo-UsingGittosplit-outadirectory
Git: автоматически разрулить конфликты в пользу «theirs» для всех файлов
Мне нужно было все конфликты в файлах по определенной маске разрешить в пользу того, что пришло с сервера. Файлов таких, по некоторым причинам, было более 5000, и не все удовлетворяли маске (реально нужно было посмотреть вручную около 20 файлов). Поэтому решил разрулить конфликты в ненужных файлах автоматически. Сначала сохраним пути ко всем файлам, удовлетворяющим маске, …
Git: patch из одного репозитория в другой
В старом репозитории сохраняем diff:
1 |
git diff --no-color --binary origin/master > ~/my_diff |
В новом репозитории
1 2 3 4 |
git checkout <ветка> # если нужно вставить не в корень cd <путь до нового корня> patch -p1 < ~/my_diff |
Наиболее полный способ. Две ветки из ориджина, применяем в текущую ветку. Идеально, когда хотим создать дифф между двумя подветками и применить к мастеру. При этом ещё и выкинуть некоторые пути, которые в патче не нужны.
1 2 3 4 |
git diff --no-color --binary origin/no-ticket-bootstrap-reorder..origin/POR-574 ':(exclude)docs/reorder/dev-local/*' ':(exclude)build-tools/dev-reorder/*' ':(exclude)README.md' ':(exclude).codacy.yml' > ~/.por-574-bootstrap-3.diff git apply --stat ~/.por-574-bootstrap-3.diff git apply --check ~/.por-574-bootstrap-3.diff git apply ~/.por-574-bootstrap-3.diff |
https://stackoverflow.com/a/39943727/801426 https://stackoverflow.com/a/2250170/801426
Git: diff с другой веткой
Сначала переключаемся в нужную ветку, потом
1 |
git diff --binary --name-only origin/master |
Это покажет только файлы. Если нужно посмотреть еще и сами изменения, нужно убрать —name-only
Интеграция PhpStorm с git под Windows 7
Вот как добавить ключи в систему — https://blog.bullgare.com/2013/03/%D0%BF%D1%83%D1%82%D1%8C-%D0%BF%D0%BE-%D1%83%D0%BC%D0%BE%D0%BB%D1%87%D0%B0%D0%BD%D0%B8%D1%8E-%D0%B4%D0%BB%D1%8F-ssh-%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%B9-%D0%B2-windows/. Вот как потом настроить PhpStorm — http://www.jetbrains.com/phpstorm/webhelp/using-git-integration.html. * Только в Version Control → Git обязательно для SSH executable нужно оставить параметр Built-In.
Интерактивное обучение Git в командной строке
http://pcottle.github.com/learnGitBranching/