Я просто набираю git
, после долгих лет svn
и cvs
. У меня есть большая часть этого, но я не чувствую, что моя общая последовательность использования является оптимальной.Использование git с удаленным репозиторием 'origin'
Моя установка: Я разработку на моей рабочей станции с местным, клонированный хранилище от 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
И теперь я их синхронизации. Это похоже на множество дополнительных шагов для синхронизации моего локального и «основного» репозитория.
Может кто-нибудь помочь мне оптимизировать мое использование?
спасибо.
EDIT: Если я не делаю отдельную ветку, я получаю ошибку, которая гласит:
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.
Я отредактировал мое сообщение с сообщением об ошибке. Я думаю, что то, что вы описали, привело к моей путанице. Дело в том, что я иногда тоже делаю dev на исходном сервере, но теперь я думаю, что я должен поместить все это в голый репо и клонировать его как на моем локальном хосте, так и на рабочем сервере на исходном сервере. –
Если вам нужно это сделать, просто запустите быстрый «git clone repodir working», и когда вы закончите, «git push && cd .. && rm -rf working» (возможно, индивидуально только для того, чтобы быть в безопасности). – coreyward
Да, я просто создал голой репозиторий, и это отсортировало его. Глупая ошибка newb. Спасибо за помощь; теперь его гораздо проще использовать :-) –