Hai*_*ood 5 git version-control git-pull git-push git-remote
如果我有一个版本控制的主项目.
然后我为第三方插件添加了一个遥控器
git remote add myplugin <url>
那我可以做 git pull myplugin master
它只是从那个遥控器中拉出变化.
现在让我说我的项目设置为:
/
/index.php
/whatever
Run Code Online (Sandbox Code Playgroud)
并将遥控器设置为
/
/whatever.php
Run Code Online (Sandbox Code Playgroud)
当我拉入遥控器时,我最终会
/index.php
/whatever
/myplugin
/myplugin/whatever.php
Run Code Online (Sandbox Code Playgroud)
这很好.
我想知道的是,如果我对myplugin进行更改,
如果我发出git push myplugin master什么推?
它只会推动myplugin的变化吗?或远程作为第二个存储库并将提交整个存储库?
只有在远程仓库已经包含(不是juut )之后git pull myplugin,你才会在a之后结束/myplugin/whatever.php/myplugin/whatever.phpwhatever.php
添加远程方法意味着将其所有历史记录并将其合并到您的仓库中,或者将您的所有仓库中的提交推送到远程(不仅仅是来自本地的更改myplugin).
您所描述的内容(仅推送'myplugin'中的更改,或仅在'myplugin中提取提交')称为子模块.
git submodule add url/myplugin myplugin
Run Code Online (Sandbox Code Playgroud)
那会添加一个目录myplugin,你可以在其中找到第二个嵌套的Git repo,就像你在问题中描述的那样.
它不仅仅是一个新的远程,而是一个子模块URL,用于在特定SHA1的子目录中包含另一个repo.
| 归档时间: |
|
| 查看次数: |
92 次 |
| 最近记录: |