我有一个repo,我正在开发一些库,然后我生成/ dist文件夹,然后我想要推送到另一个仓库,以便其他应用程序只能导入它。
所以我读到将这个/ dist添加为子模块将是一种方法。
我的主文件夹(使用my / src,package.json等)有一个这样的遥控器:
MINGW64 ~/Documents/myapp-dw (master)
$ git remote -v
origin https://.../_git/myapp-dw (fetch)
origin https://.../_git/myapp-dw (push)
现在我添加一个带
的子模块$ git submodule add https://.../_git/myapp-dw-dist dist
创建一个新的.modules文件,其中包含新模块的信息。
接下来,我使用npm任务生成我的dist文件夹,并使用其余文件创建文件夹。
我git status
我看到文件夹/ dist已被修改。
所以我转到/ dist并运行git add .
和git commit
接下来,我从我的主文件夹中执行git push
,并将/ dist文件夹推送到我的主存储库而不是我的dist存储库。
我在这里缺少什么?我认为这应该进入myapp-dw-dist,因为我将其添加为不同的子模块。
编辑:为了以防万一,我不得不说每次重建我的/ dist文件夹时我都会完全删除文件夹(rimraf)然后重新创建它...是否有可能我删除一些敏感的git信息?我的印象是所有需要的git都是.modules文件。答案 0 :(得分:1)
调用<cffunction name="yourfunction">
<cftry>
...
<cfcatch>
<cfmail to="myemail@mydomain.edu" from="myemail@mydomain.edu" subject="Error:yourfunction">
<cfdump var="#session#">
<cfdump var="#CGI#">
<cfdump var="#cfcatch#">
</cfcatch>
</cftry>
<cffunction>
后,应该已存在新文件夹$ git submodule add https://.../_git/myapp-dw-dist dist
。此文件夹中发生的所有事情(以及此文件夹中发生的事情)都将被推送到dist
存储库。
但是,您可能没有注意到该目录,因为在您运行myapp-dw-dist
之前它将为空。这应该会使$ git submodule init
回购邮件中的所有文件都显示在内部。现在,文件夹内的更改可以从此文件夹(即存储库)中推送 。
在子模块中提交更改后,不要忘记在父存储库中提交子模块的已更改状态。
有关子模块的更多文档,请参阅here。
编辑:啊,有问题!正如您在编辑中所说,当您删除myapp-dw-dist
文件夹时,也会删除dist
文件夹。这是告诉git进入哪个存储库的文件夹。只要您的子模块中没有dist/.git
文件夹,git就会认为它只是父存储库中的另一个文件夹,并推送其他所有内容被推送到其中。
您可以尝试仅删除.git
内的文件而不是整个文件夹,或者在每次更改后重新添加子模块(这听起来更容易出错)。