Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.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模块最佳实践_Git_Git Submodules - Fatal编程技术网

Git模块最佳实践

Git模块最佳实践,git,git-submodules,Git,Git Submodules,我将我的项目切换到多个子存储库,并将这些存储库作为git模块包含到主项目中 这是我的.gitmodules文件: $ cat .gitmodules [submodule "packages/myproject-lib"] path = packages/myproject-lib url = git@git.example.com:rislab/myproject-lib.git [submodule "packages/myproject-language-pack"]

我将我的项目切换到多个子存储库,并将这些存储库作为git模块包含到主项目中

这是我的
.gitmodules
文件:

$ cat .gitmodules
[submodule "packages/myproject-lib"]
    path = packages/myproject-lib
    url = git@git.example.com:rislab/myproject-lib.git
[submodule "packages/myproject-language-pack"]
    path = packages/myproject-language-pack
    url = git@git.example.com:rislab/myproject-language-pack.git
每次我在其中一个模块中更改某些内容并签入这些更改时,git都会在主存储库中显示一些未过时的更改,如下所示:

$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   packages/myproject-lib (new commits)

no changes added to commit (use "git add" and/or "git commit -a")
$
$git状态
论分行行长
您的分支机构是最新的“原始/主”分支机构。
未为提交而暂存的更改:
(使用“git add…”更新将提交的内容)
(使用“git签出--…”放弃工作目录中的更改)
修改:包/myproject库(新提交)
未向提交添加任何更改(使用“git add”和/或“git commit-a”)
$
这很烦人,虽然我有点明白git为什么这么做。但由于我是子包的开发人员,我并不想让git告诉我git模块中的项目发生了什么变化。这基本上意味着,如果我想在我的主要项目中保持一个干净的状态,我必须提交那个变更

有没有一种方法可以忽略GitModule中的更改,这样我的
git状态就可以显示我的主项目中的一切正常


我在ddg'ing(duckduckgoing)的时候什么也没找到,还尝试了谷歌。因此,他的建议也没有给我指出正确的答案。

很多人会说,子模块的最佳实践是不使用它们。不要使用子模块。