相关疑难解决方法(0)

如何将Git中的文件添加到以前的子模块的路径中?

我有一个项目,用于在路径中包含子模块mysubmodule.我从源代码(1.8.3-rc2)安装了最新的Git并运行git submodule deinit mysubmodule.然后我删除了.gitmodules文件并提交了更改.我还.gitmysubmodule文件夹中删除了该目录.

我现在想mysubmodule直接将文件提交到我的仓库,但是git说没有变化.如果我输入git add mysubmodule它什么都不做.如果我输入git add mysubmodule/file.txt它说fatal: Path 'mysubmodule/file.txt' is in submodule 'mysubmodule'

我还发现,如果您查看一个新版本的repo,它会创建一个mysubmodule目录,尽管没有.gitmodules文件.跑步git submodule init会给你一个No submodule mapping found in .gitmodules for path 'mysubmodule'错误.

我该如何解决?

git git-submodules

66
推荐指数
1
解决办法
2万
查看次数

“git config core.worktree”是什么意思?

我在我正在使用的脚本中看到了这一行:

git config core.worktree ..
Run Code Online (Sandbox Code Playgroud)

我不确定 git worktree 做什么,但我绝对不明白为什么将其设置为..

有什么线索吗?谢谢

git config git-worktree

9
推荐指数
1
解决办法
5803
查看次数

重用Git子模块的子模块

我有一个Git项目.我们来说吧Proj.

Proj有两个子模块,LibUtils.

Lib也有子模块Utils.

现在问题是,当一个人想要时git clone --recursive Proj,他将需要下载Utils两次.当项目进展得更深时,情况可能会更糟.

那么如何Proj重新使用Utils已经下载的Lib

我的工作树:

Proj                      # Main project
+-- .git
`-- external
    +-- Lib               # Proj depends on Lib
    |   +-- .git
    |   `-- external
    |       `-- Utils     # Lib depends on Utils
    |           `-- .git
    `-- Utils             # Proj also depends on Utils
        `-- .git
Run Code Online (Sandbox Code Playgroud)

注意:

  1. 最好Utils留在external/Utils.

  2. 由于Windows兼容性,不允许使用符号链接.

如果有人能帮我解决这么复杂的问题,我将不胜感激.

git repository git-submodules

8
推荐指数
1
解决办法
463
查看次数

在 Vue 项目之间共享资产和组件

我有 2 个 Vue 应用程序,它们都需要使用一些常见的页面和资产(scss 文件、图标等)。

他们需要共享的页面是可以访问 vuex 存储和异步调用的完整页面。

我认为要做的是创建一个单一的 vue 应用程序(使用 cli)并将两个应用程序放入其中并有一个共享文件夹:

vue-project
   - src
     - app1
     - app2
     - shared
Run Code Online (Sandbox Code Playgroud)

但后来我遇到了一个问题:如何分别构建/运行每个应用程序?

vue.js vue-cli-3

8
推荐指数
1
解决办法
4358
查看次数

两次引用相同的子模块

我有两个代码库一个,并已开始开发一个应用程序中号.所有这三个都存储在自己的存储库中.

我的问题是,我有一个依赖关系,使得一个使用子模块,但中号同时使用子模块.

据我所知,我将为同一个主项目提供相同子模块B的两个副本.但是它们在这个设置中永远不会有意义,因为它们在同一个应用程序中代表相同的库.

有没有办法解决这个问题,所以当我在M上工作时,我只有AB的一个副本?

git

6
推荐指数
1
解决办法
1071
查看次数

与git子模块共享一个工作树

假设我有一个库Common,可以使用独立的,并且所使用的项目P1P2,因此,树我想要的样子

/Common/.git
        ...
/P1/.git
    .gitmodules  # points to remote server
    Common/
    ...
/P2/.git
    .gitmodules  # points to remote server
    Common/
    ...
Run Code Online (Sandbox Code Playgroud)

当我进行更改时/Common,我希望能够在提交之前P1P2之前测试它.使用通常的git submodule命令集,我将不得不提交/Common,推送到远程,然后从两个/P1/Common/P2/Common.如果提交中断了某些内容,则无法修改,因为已经发布了错误的更改.或者,我可以git remote add quicktest /Common/P?/Common不触摸远程服务器的情况下拉动.但是这有很多不一致的机会,并且删除破坏的提交是很脏的,/P?/Common以便可以修改它们/Common.

我宁愿认为,在开发过程中,从工作树/Common被使用P1P2,但我不能让/P1/Common一个符号链接/Common,因为git submodule识别符号链接从目录不同.大多数文件系统不允许使用硬链接目录.我可以使用硬链接所有文件

rm -rf /P1/Common
cp -rl /Common /P1/Common
Run Code Online (Sandbox Code Playgroud)

/Common在添加新文件之前效果很好,在这种情况下需要重复此过程.两者都有优雅的方式吗?

  1. 继续git …

git git-submodules

5
推荐指数
1
解决办法
686
查看次数

将文件夹设为符号链接和 git 子模块

简而言之,这是我的项目结构:

 + A
 | + some content
 |
 + B
   + A
Run Code Online (Sandbox Code Playgroud)

我希望在我的主 git 存储库中有一个B指向A. 但由于该A项目包含 main 方法,我希望能够在提交之前快速测试,因此我想要一个指向的符号链接(或者更确切地说,mklink因为我在 Windows 上)A,以便它无需提交即可更新。

windows git symlink mklink

5
推荐指数
1
解决办法
1100
查看次数