git - 同时结帐2个项目

时间:2016-06-27 19:52:29

标签: git

我有项目A和B(两个单独的git项目),如下所示:

A/some files
A/B/some more files

我将B添加到A但是当我尝试提交A时,上游仓库中没有B的迹象,我认为这是因为B是它自己的git项目。

我认为这与子模块有关,但简而言之,我可以使用单个git checkout命令同时检查两个项目吗?或者我是否需要进行2次单独的命令行调用?例如

git checkout A; git checkout B;

2 个答案:

答案 0 :(得分:0)

它们是两个独立的git项目。他们有自己的回购,他们自己的头。所以不行。默认情况下,您不能使用一个命令。

每个.git文件夹都包含所有回购信息。

enter image description here

这就是git知道推送的位置以及它所指向的head / repo的位置。 git只知道当前目录中带有.git目录的git repo。

更多说明: 如果您在项目B中进行了更改,然后在A

中进行提交
git add .
git commit -m "I'm in project A directory"

这只会影响回购A.所以做一个

git clone {url to B}

不会反映这些变化

答案 1 :(得分:0)

它们是完全独立的git repo,所以他们彼此不了解。所以命令只会对活动仓库产生影响。使用命令'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'