Я просто набираю git
, после многих лет svn
и cvs
.Большинство из них мне знакомы, но я не чувствую, что моя обычная последовательность использования оптимальна.
Моя настройка : я занимаюсь разработкой на своей рабочей станции с локальной системой,клонированный репозиторий с сервера origin
, который в моем проекте рассматривается как "главный" репозиторий.Я регулярно делаю git fetch
, проверяю новые обновления, затем git merge
, чтобы объединить их, если они актуальны.
Однако, когда я работаю и проверяю ветку кода, мои сомненияложь.
Обычная последовательность, которую я использую:
git branch somenewbranch
git checkout somenewbranch
... work work work ...
git add [changed files]
git commit
git checkout master
git merge somenewbranch
git branch -d somenewbranch
Вот то, что я думаю, можно оптимизировать:
git push origin master:blahblah # This won't let me push to master branch
ssh origin
cd repodir
git merge blahblah
git branch -d blahblah
logout
git status # this shows me I'm still ahead
git pull origin # to bring them back in sync
git remote show origin # shows I have a stale blahblah branch
git remote prune origin # cleans that up
И теперь я синхронизировал их.Это похоже на множество дополнительных шагов для синхронизации моего локального и «основного» хранилища.
Может ли кто-нибудь помочь мне оптимизировать мое использование?
Спасибо.
РЕДАКТИРОВАТЬ : Если я не делаю отдельную ветку, я получаю сообщение об ошибке:
remote: error: refusing to update checked out branch: refs/heads/master
remote: error: By default, updating the current branch in a non-bare repository
remote: error: is denied, because it will make the index and work tree inconsistent
remote: error: with what you pushed, and will require 'git reset --hard' to match
remote: error: the work tree to HEAD.