2010-12-12 112 views
0

我有點奇怪的問題(我認爲...)。如果其中一些沒有意義,請與我聯繫;我是一個git noob。git推到分支

我有一個已經存在的Android項目,在它自己的文件夾中,完全在我克隆的回購之外。我想要做的只是將這個android項目的內容推送到我的同事的回購。我希望該項目成爲回購協議新分支的一部分。我如何去做這件事?我可以打開bash,去我的android項目文件夾,並添加一個遙控器回購並推送到它?或者我想我首先需要把這個項目變成回購的一個分支?如果是這樣,如果我實際上在本地回購文件夾之外工作,我將如何使其成爲回購的一個分支?

困惑了嗎? ;)

也許最好的辦法是將整個項目複製到本地repo文件夾,然後創建一個分支並推送它?

我喜歡一些關於如何最有效地做到這一點的分步說明。

非常感謝。

+0

你看過這個嗎? http://stackoverflow.com/questions/315911/git-for-beginners-the-definitive-practical-guide – WarrenFaith 2010-12-12 17:38:18

回答

1

看來,這兩個項目在很大程度上是獨立的,所以我強烈懷疑最好的辦法是改變你的資料庫的文件結構,而不是使用分支:

/path/to/repo 
    +- projectA 
    +- projectB 

所以一臺機器上做到這一點:

mkdir /path/to/repo 
git init 
cp -r /path/to/projectA . 
git add . 
git commit -m "Initial import of project A" 

然後在另一臺機器上:

cd /path/to 
git clone <url for repo set up on the first machine> 
cd repo 
cp -r /path/to/projectB . 
git add . 
git commit -m "Initial import of project B" 

不要在這一點上打擾git分支。您現在可以處理項目A並創建提交;另一個開發人員可以在B上工作。不會有任何衝突,你們都會看到彼此的變化。

我也建議地方建立一個純倉庫,你都推到和拉:

mkdir /path/to/centralrepo 
git init --bare 

然後,您可以既克隆這個倉庫。 Git是點對點的,但有一個你認爲是「中心」的存儲庫還是不錯的,尤其是如果你打算在將來增加持續集成或者新的開發者。

看來你對git分支的含義有點困惑。它是一個時間分支,而不是空間分支。也就是說,一個git分支意味着代碼開發在過去的某個時間點是分散的,但是這兩個分支在某個時刻有共同的歷史。例如,空間分支是包含新項目的新文件夾。

如果分支A與分支B完全不同,那麼分支並沒有什麼意義:您可能還有一個全新的存儲庫。

對不起,這是一個很長的答案。我希望這有幫助!

+0

非常感謝您的及時和徹底的迴應。我需要一些澄清。當我mkdir你是否說我應該在那裏創建一個名爲「項目A」的子文件夾,然後從那裏繼續?另外,「cp -r/path/to/projectA」是什麼。做? – LuxuryMode 2010-12-12 18:44:58

+0

是的,在每個項目的資源庫中創建一個子文件夾。 'cp'命令將現有的'projectA'文件夾複製到當前目錄。如果項目尚不存在,您可以用'mkdir projectX'替換它們。我假設你在Linux上;在Windows中,您可能只需將項目文件夾拖放到存儲庫中即可。在所有這些的最後,你在/ path/to/repo中有一個存儲庫,裏面有兩個文件夾(和一個.git文件夾)。 – 2010-12-12 20:04:42

+0

謝謝。要成功推送,我需要添加,提交,然後推送,對嗎?我如何添加整個項目文件夾,我拖放到回購?我會只做「git add project /」嗎? 此外,我試圖推... – LuxuryMode 2010-12-13 00:48:08

0

讓「在其自己的文件夾中的android項目」爲「A」,「我克隆的回購」爲「B」。 :)

首先將您的項目A轉換成git存儲庫,如果它不是一個。 (git init

然後,您可以將它作爲遠程B(git remote add ...,請參閱幫助)添加並將其拉入B(git branch --help)的本地分支。然後你可以把它推到B的其他遙控器中。

如果你可以提供路徑名,我可以寫一個例子。

+0

非常感謝。你是否同意卡梅倫這個呢? – LuxuryMode 2010-12-12 18:46:07

+1

@LuxuryMode是的,我同意分支機構不是適用於不同代碼庫的正確模型。我建議把兩者放在單獨的軟件倉庫中並從中進行工作。 – moeffju 2010-12-12 18:59:33