Change the origin of the repository
Edit .git/config file:
... [remote "origin"] url = <line to change> ...
Cancel previous commit
git reset HEAD^
Commit, rewriting previus
git commit --amend
Remove from staged, but keep the file
git rm --chached <file>
Remote repo
git remote add frank http://frnak.com/git/project git remote add pb git://github.com/paulboone/ticgit.git git remote -v git remote show origin git remote show frank
Working with remote branches
Push your local branch to the origin
git push origin <branchname>
Delete branch from the origin
git push origin :<branchname>
Tagging
git tag -a v1.0 -m"Version 1.0" git tag -a v1.2 9fceb02 git show v1.* git push origin v1.0 git push origin --tags
Autocomplete (gentoo)
echo "source /usr/share/bash-completion/git" >> ~/.bashrc
Подпроекты 1. подмодули (много подводных камней)
git update-index --skip-worktree core .gitmodules
Поддеревья (можно хранить в отдельной ветке клон удаленного репозитория и, когда надо, сливать эту ветку с основной
git remote add core_remote /repo/core.git git fetch core_remote git checkout -b core_branch core_remote/master git checkout master git read-tree --prefix=<prefix> -u core_branch для обновления ветки git checkout core_branch git pull git checkout master git merge --squash -s subtree --no-commit core_branch разница с веткой git diff-tree -p core_branch разница с удаленным репозиторием git diff-tree -p core_remote/master
- Проблема зависимостей.
Допустим имеется проект core (например библиотека работы со строками). Имеются проекты a и b, которые используют проект core. Допустим мы создаем проект super, который будет использовать проекты a,b и core. Как нам лучше организовать процесс, чтобы не запутаться в трёх различных копиях core. Например, что делать если, работая в a, мы поменяли core?
Если git merge срабатывает не в то поддререво используем "ручное управление". Пример:
git merge --squash --no-commit -s recursive -X subtree=src -X theirs nx_socket@rmt
Comments
comments powered by Disqus