2012-02-17 140 views
1

Git的裸回購我想和多個分支(主,開發,發佈等..)一個Git的裸庫。所以問題是,如果可以檢出裸倉庫或如何在分支之間切換(是否切換)?多個分支

當我要推到裸露的庫我可以對純倉庫或合併合併必須在本地完成,推動了足夠的分支?因此,尋找一種正確的做法:-)

感謝 彼得

+1

網站社區期望您接受提供給您的問題的答案。謝謝! – CharlesB 2012-02-17 08:21:22

+0

你好@Pepe,歡迎來到StackOverflow。請閱讀FAQ:http://stackoverflow.com/faq,特別注意關於如何在stackoverflow上提出問題的部分。我也注意到你過去曾經提過很多問題,但沒有投票或選擇任何答案。您可以導航至您的個人資料,查看您所提問題的列表,通讀並投票並選擇解決問題的答案。謝謝! – 2012-02-17 08:23:02

+0

也許我不明白你的意見是什麼意思? – Pepe 2012-02-17 08:32:15

回答

6

I want to make a git bare repository with multiple branches (master, develop, release, etc..).

從問題來看,似乎你不確定你會做裸git倉庫的原因,以及你將如何使用所述儲存。問題是,爲什麼你想做一個裸倉庫?

Pro Git,純倉庫是「不包含工作目錄的倉庫。」這是一個你無法使用的版本庫,只適用於git pushgit pull。這樣做的原因概括起來here

"A bare repository is one without a checked out working copy of the code. It only contains the git database. As a general rule you should never push into a repository that contains changes in the working copy. To ensure this doesn't happen, we're making the server repository a bare repository - it has no working copy."

所以,裸露的git倉庫,絕對可以包含多個分支。你絕對可以獲取裸遠程庫的副本到您的當地庫,並從當地推送到你的遠程(裸)庫。但是,您希望工作出你的裸庫中。 (此外,在裸倉庫中運行git add是不可能的;參見this SO question以進行澄清)。

So question is if it is possible to checkout the bare repository or how to switch among the branches (does it make a sense to switch)?

這個問題,我想,是不是完全清楚,因爲你從來沒有真正打開裸存儲庫分支 - 你永遠在裸倉庫工作。你所做的只是推或拉。

When I want to push to the bare repository can I make a merging on bare repository or merging must be done locally and push the adequate branch? So looking for a right approach :-)

git-push以純倉庫,你必須首先確保沒有合併衝突 - 如果有,推送會失敗(Reference: book.git-scm.com, "Pushing changes to a public repository")。因此合併必須在本地執行,然後在git-push的裸倉庫上更改快進

So looking for a right approach.

沒有什麼特別之處純倉庫,除了事實上,你不應該也不能工作了吧。正如其他人所引用的,gitflow model爲您提供了一個涉及多個存儲庫的工作流的概念 - 關於如何要求提供git工作流示例和方法論,存在很多問題。幾乎每一個引用(1, Pro Git)(2, book.git-scm.com)使用純倉庫連同公開或公佈庫 - 鏈接的文章討論了創建和使用的詳細裸庫。

+0

你爲什麼希望建立一個裸倉庫?我想要有一個「中央」的回購,讓開發者分享。有些是內部的,有些是公司外部的。我想遵循這個模型http://nvie.com/posts/a-successful-git-branching-model/ – Pepe 2012-02-17 19:23:41

2

的問題是你想要做什麼有點不清楚。 Git不執行特定的工作流模型。這個想法是留給你 - 開發團隊。根據您發佈的分支名稱,在我看來,您傾向於gitflow model,這對於許多公司和開發團隊而言是非常成功的工作流程。

當您最初創建存儲庫(如果在遠程服務器上不存在的地方),你會使用git init它創建了一個默認master分支新的存儲庫。然後,您可以使用git add添加文件,並提交:git commit。當你準備推到遠程的git服務器(如github),你會使用添加遠程git的URL:git remote add origin <url>和使用git push origin master 把你的資料庫服務器如果你已經擁有你想克隆一個遠程服務器存儲庫中,您將使用git clone <repo url>,這會拉下存儲庫並將您指向默認分支(通常爲master)。

當您想要在功能分支上進行開發並在之後將其合併(例如),或者您的代碼準備好發佈時,切換分支非常有用,可以分支到release分支並最終將其合併到一個生活/生產部門。有關這樣做的詳細信息,請參閱gitflow model

對於入門git的,我建議你閱讀過documentation on github,從「初學者」。您可以閱讀更多關於Git是什麼以及A List Apart Get Started with git文章中的一些基本命令。

+0

是的,我看到了「gitflow模型」。所以問題與它有關。我創建「裸」回購。我想在這個「光禿禿的」回購中擁有多個分行。那麼,我能否在「裸機」回購中檢出這些分支,甚至是否可以在裸回購上檢出分支? – Pepe 2012-02-17 08:31:41

+0

所以我有裸回購,並有2個分行:mastrer&開發,我只有與主分支本地回購。我想把它從我的本地推到裸回購。 如果我想推它開發分支我得到這個: c:\ work \ Projects \ sw_fw01> git推EPO開發 錯誤:src refspec開發不匹配任何。 錯誤:未能將一些文件推送到'c:\ Dropbox \ projects \ git \ sw_fw01.git \' 問題在哪裏? – Pepe 2012-02-17 09:38:46

+0

+1爲gitflow模型 – 2012-02-17 14:34:44