經過多年的svn
和cvs
,我只是撿起了git
。我掌握了大部分內容,但我不覺得我的常見使用順序是最佳的。使用遠程「起源」存儲庫的git使用情況
我的設置: 我做我從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.
我編輯我的帖子與錯誤消息。我認爲你所描述的導致了我的困惑。問題是,我有時候也在原始服務器上進行開發,但現在我想我應該把所有這些都放到一個裸機上,並將它克隆到本地主機以及源服務器上的工作目錄。 – 2011-01-21 01:31:44