我正在开发一个多层应用程序,我为正在构建的每个服务分配了一个项目文件夹。该设置示意性如下所示:
\n\n.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 ProjectA\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 .git\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 _framework\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 backend\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 config\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 frontend\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 info\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 ProjectB\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 .git\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 _framework\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 backend\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 config\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 frontend\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 info\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 ProjectC\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 .git\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 _framework\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 backend\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 config\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 frontend\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 info\nRun Code Online (Sandbox Code Playgroud)\n\n在每个项目文件夹中,我都在该文件夹中配置了一个子模块_framework。\n由于我在每个文件夹中积极开发,所以我也在该_framework文件夹中进行频繁的更改。我发现保持_framework在所有项目中保持子模块同步需要花费大量时间。
例如:\n当我在ProjectB子模块中进行开发和更改时,我将提交更改并将其推送到远程存储库。然后当我切换到 时ProjectC,我首先需要拉动_framework子模块,在主 GIT 存储库中提交更改,然后才能再次开始工作。
我知道 GIT 子模块如此设置是有充分理由的,但是有什么方法可以自动化该过程吗?这样,当我在 ProjectB 中工作并推送子模块时 - 在其他项目中,相同的子模块会自动拉取并提交到主要的本地 GIT 重现中?
\n我有一个main由多个子模块组成的应用程序A,B并且utility_functions: 这两个子模块A及其B本身都包含该子模块utility_functions。
main
|
|---- A
| |
| |---- utility_functions
|
|---- B
| |
| |---- utility_functions
|
|---- utility_functions
Run Code Online (Sandbox Code Playgroud)
现在utility_functions我的项目中有三次。通常sub_A,sub_B和main都应该指向同一个提交utility_functions。
存储库中的代码必须能够A自行运行。如果我只克隆A它应该包括我的utility_functions
A
|
|---- utility_functions
Run Code Online (Sandbox Code Playgroud)
有没有办法只告诉主存储库中包含的子模块依赖相同的子模块utility_functions?或者这是否打破了子模块的想法,因为它们可以指向不同的提交?或者这只是一个坏主意?
main
|
|---- A
| |
| |----
| |
|---- B |
| | |
| | |
| …Run Code Online (Sandbox Code Playgroud) 我有一个 git 子模块 B,它作为我的 django 项目 A 中的应用程序工作。B 有自己的 Pipfile 和 Pifile.lock。A还有一个Pipfile和Pipfile.lock。如何使用 Pipenv 在同一 virtuaelenv 中的两个 pipfile 中安装库?
我正在开发一个包含一些子模块的 git 存储库,这些子模块在不同的分支上有不同的修订版。当我切换分支时,我得到:
M path/to/subrepo
Switched to branch 'another-branch'
Run Code Online (Sandbox Code Playgroud)
信息。然后我手动执行:
git submodule update --recursive
Run Code Online (Sandbox Code Playgroud)
然后这种情况就消失了。
我尝试在 .git/hooks/post-checkout 中编写一个 git hook:
#!/bin/bash
exec git submodules update --recursive
Run Code Online (Sandbox Code Playgroud)
但这似乎没有任何作用。我尝试从 post-hook 行添加 exec echo hello - 似乎也不起作用。
我的问题:我可以配置 git 以便分支签出本身默认也会更新子模块吗?
我正在尝试创建一个私有的 mono-repo,其中包含具有公共 git 的子包。我绝不打算修改 mono-repo 之外的代码,因此我不需要子模块。事实上,它们正是我不惜一切代价试图避免的事情。
我不想删除我的 mono-repo 中任何包的 .gits,也不想做任何花哨的事情。
如何简单地禁用 git 中的子模块功能?
我不希望任何东西被视为子模块。从来没有,也可能永远不会。
我尝试在 git 中搜索一些 .submodule 文件夹或其他内容。我没有找到。似乎没有设置可以摆脱这些东西。
我找到了这个链接:un-submodule a git submodule
不幸的是,这些解决方案都与展平子模块有关,并且它们都没有涵盖完全禁用该功能的方法。
我已经core.sshCommand为存储库设置了选项,以便在使用它时可以使用不同的 ssh 密钥(即sshCommand = ssh -i /path/to/key)。但是,当我运行时git submodule update不考虑此选项:
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Run Code Online (Sandbox Code Playgroud)
有什么方法可以配置存储库以将给定的 ssh 密钥用于自身和任何子模块吗?
我在 github 上有一个存储库,其中有一些子模块。当我git status在我的存储库中运行时,我看到子模块已更改:
modified: ci (new commits)
modified: metadata (new commits)
Run Code Online (Sandbox Code Playgroud)
如何将本地子模块重置为与 origin/master 子模块引用相同?我尝试过git reset --hard origin/master仅重置本地文件而不重置子模块。
此外,我在这些子模块中没有任何本地更改。我认为发生的情况是我git pull在子模块中运行了 a,这使得我的存储库引用的提交 ID 发生了变化。
我怎样才能排除Subproject commit ....我在子模块中没有更改任何内容,只从远程存储库中提取更改!我认为在创建子模块时,我在主存储库中提交了一些不需要的东西。有任何想法吗?
1)当我在主存储库中创建子模块git diff时也显示
submodule-path:
Subproject commit 5a8162ff9a602deb96956854346988e1ee45672e
Run Code Online (Sandbox Code Playgroud)
我犯了这个
2)然后有人提交到子模块,所以它有以下日志
2ff89a2bfcaa0 last commit
5a8162ff9a602d first commit
Run Code Online (Sandbox Code Playgroud)
3)我更新了子模块
git submodule update --remote --merge
4)现在git状态显示
modified: submodule-path (new commits)
Run Code Online (Sandbox Code Playgroud)
但我在子模块中没有更改任何内容,只拉取最后的远程更改!我需要最后的改变
git diff显示
diff --git a/submodule-path b/submodule-path
index 5a8162f..2ff89a2 160000
--- a/submodule-path
+++ b/submodule-path
@@ -1 +1 @@
-Subproject commit 5a8162ff9a602deb96956854346988e1ee45672e
+Subproject commit 2ff89a2bfcaa014885a70b0da86e997ecd8d0688
Run Code Online (Sandbox Code Playgroud) 我基本上试图将poc我的主应用程序的某些部分提取到一个单独的包中。我已经在我的 git repo myapp-poc-ui中构建了一个示例单独包。
现在我正在尝试在我的main application.
package.json :
"dependencies": {
"myapp-poc-ui": "git+https://github.com/prabhatmishra33/myapp-poc-ui#master",
"react": "^16.10.1",
"react-dom": "^16.10.1",
"react-scripts": "3.2.0"
},
Run Code Online (Sandbox Code Playgroud)
我通过以下方式访问主应用程序中的导出模块:
import React from 'react';
import './App.css';
import { HelloWorld } from "myapp-poc-ui";
import { LazyComponent } from "myapp-poc-ui";
function App() {
return (
<div>
<HelloWorld />
<LazyComponent />
</div>
);
}
export default App;
Run Code Online (Sandbox Code Playgroud)
问题:我的浏览器遇到问题
Uncaught SyntaxError: Unexpected token '<'
Uncaught (in promise) ChunkLoadError: Loading chunk 1 failed.
Run Code Online (Sandbox Code Playgroud)
Hello World已正确加载,但加载LazyComponent.
webpack config file …
git-submodules reactjs webpack webpack-dev-server react-loadable
最近,我花了很多时间关注一位早已去世的开发人员为我正在开发的 C++ 项目提供的含糊且不正确的构建说明。因此,我正在编写一个新的构建系统,并且正在寻找最好的方法。我已经决定ExternalProject_Add在项目目标之前使用 CMake 中的命令来收集和构建依赖项,但我还发现了一篇建议使用 git 子模块的优秀文章,它看起来做了非常相似的事情,即使不是相同的事情。所以我的问题: git 子模块和ExternalProject_Add之间有什么关系?