Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
git-同时签出2个项目_Git - Fatal编程技术网

git-同时签出2个项目

git-同时签出2个项目,git,Git,我有两个项目A和B(都是独立的git项目),看起来像这样: A/some files A/B/some more files 我在A中添加了B,但当我尝试提交A时,上游回购中没有B的迹象,我认为这是因为B是它自己的git项目 我假设这与子模块有关,但简言之,我可以简单地使用一个git checkout命令同时签出两个项目吗?或者我需要进行两次单独的命令行调用吗?e、 g git checkout A; git checkout B; 它们是两个独立的git项目。他们有自己的回购协议,有自己的

我有两个项目A和B(都是独立的git项目),看起来像这样:

A/some files
A/B/some more files
我在A中添加了B,但当我尝试提交A时,上游回购中没有B的迹象,我认为这是因为B是它自己的git项目

我假设这与子模块有关,但简言之,我可以简单地使用一个git checkout命令同时签出两个项目吗?或者我需要进行两次单独的命令行调用吗?e、 g

git checkout A; git checkout B;

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

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

这就是git知道要推到哪里以及它指向的头/回购的地方。git只知道当前目录中带有.git目录的git repo

进一步澄清: 如果您在项目B中进行了更改,然后在项目a中进行了提交

git add .
git commit -m "I'm in project A directory"
这只会影响回购协议A。因此

git clone {url to B}

不会反映这些变化

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

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

这就是git知道要推到哪里以及它指向的头/回购的地方。git只知道当前目录中带有.git目录的git repo

进一步澄清: 如果您在项目B中进行了更改,然后在项目a中进行了提交

git add .
git commit -m "I'm in project A directory"
这只会影响回购协议A。因此

git clone {url to B}

不会反映这些变化

它们是完全独立的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”

它们是完全独立的git repo,因此彼此不了解。因此,命令仅对活动的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”