我有项目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;
答案 0 :(得分:0)
它们是两个独立的git项目。他们有自己的回购,他们自己的头。所以不行。默认情况下,您不能使用一个命令。
每个.git文件夹都包含所有回购信息。
这就是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'