繁体   English   中英

如何使用 git 将代码更改为子模块?

[英]How to pull to code change to submodule using git?

我在本地机器上有两个存储库。

   main-repo
   sub-repo

我将 sub-repo 添加为 main-repo 中的子模块。 子仓库包含一个自述文件。

最初,我保持目录名称与 repo 名称相同。 我将 sub-repo 目录更改为 sub1。 希望这可以消除任何混乱。


   main-repo
        sub1
             readme

如果我从 main-repo/sub-repo/readme 更改 readfile,而不是直接从 sub-repo/readme 更改。

这些是我已经完成的步骤。 由于这仅在我的本地计算机上,因此我使用此命令添加了子模块

 cd main-repo
 git submodule add file:///c:/Users/Worker/Git/t5-sub/sub-repo sub1
  1. cd main-repo/sub1

  2. git 结账主控

  3. 编辑自述文件

  4. git 提交。

  5. git推

  6. cd 子仓库目录

  7. git 状态

On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        modified:   readme

当我查看自述文件的内容时,它没有变化。 如何将更改从 main-repo 拉到 sub-repo?

您不应该在第 5 点git push因为您推送到不推荐的非裸存储库。 实际上,我希望这样的推送会出现错误,消息为"remote: error: refusing to update check out branch: refs/heads/master"

你应该拉它,而不是推动它:

cd sub-repo
git remote add sub ../main-repo/sub1
git pull sub master

我已经尝试过@phd 的建议。 它对我不起作用。 在玩了一会儿之后,我发现这对我有用。

cd sub-repo
git restore --staged readme
git checkout .

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM