2016-06-27 142 views
1

我有項目A和B(均爲獨立的Git項目)是這樣的:的git - 結帳2個項目同時

A/some files 
A/B/some more files 

我加B到A,但後來當我試圖犯有我假設上游回購沒有B的跡象,因爲B是它自己的git項目。

我認爲這與子模塊有關,但簡而言之,我可以使用單個git checkout命令同時檢出兩個項目嗎?或者我需要做兩個獨立的命令行調用?例如

git checkout A; git checkout B; 

回答

0

它們是兩個獨立的git項目。他們有自己的回購,他們自己的頭。所以不行。默認情況下不能使用一個命令。

每個.git文件夾都包含所有的回購信息。

enter image description here

這是混帳知道在哪裏可以推,什麼頭/回購它是在指向。 git只知道當前目錄中的.git目錄下的git repo。

更多澄清: 如果您在項目B中的變化,然後做一個承諾,同時在

git add . 
git commit -m "I'm in project A directory" 

這隻會影響回購A.所以做

git clone {url to B} 

不會反映這些變化

0

他們是完全獨立的git回購所以他們不知道彼此。所以命令只會影響主動回購。使用命令'git rev-parse --git-dir'來查看活動的git repo

調用你顯示的命令行不起作用,因爲默認情況下,git通過當前目錄確定活動的存儲庫和工作樹。相反使用

cd path_to_A/A 
git rev-parse --git-dir 
git checkout MyBranchInA 
cd B 
git rev-parse --git-dir 
git checkout MyBranchInB 

Git子模塊不參與,因爲它們尚未設置。你可以用'git submodule add'來設置一個,也可以參考'git sub-tree',它只會更好地執行相同的操作。對於這些命令的幫助,請參閱'git help submodule'和'git help subtree'