github 下子模块的访问权限
Access rights to submodules under github
我想要一个 github 项目 projectA,它使用子模块 projectSub。我还希望用户能够递归地克隆项目,自动获得 projectA 和 projectSub.
如果我错了请纠正我,但据我了解,克隆 https://github.com/username/projectname
意味着在推送之前会要求您输入用户名和密码,而克隆 git@github.com:username/projectname
将使用您的 ssh自动凭据。
现在,我可以这样添加子模块了
git add submodule git@github.com:username/projectSub
或因此
git add submodule https://github.com/username/projectSub
如果我使用第一种方法,没有 ssh 访问项目的用户将无法递归克隆projectA,因为.gitmodules
文件包含 git@github.com:...
.
但是如果我使用第二种方法,在将更新推送到 projectSub 时,具有 ssh 访问项目的用户 仍然会被要求提供用户名和密码,因为 .gitmodules
文件包含 https://github.com/...
.
有没有办法让这两种用户都能使用? (或者我完全误解了它是如何工作的?)
Is there a way to make this work for both kinds of users? (Or have I completely misunderstood how this works?)
使用子模块时,我发现将子模块视为只读克隆最简单。如果我需要进行更新,我会单独克隆上游存储库,然后 git pull
将更改放入子模块。
也就是说,您仍然可以完成这项工作。默认使用 https://
网址。对于需要推送更改的人,他们将:
git remote set-url --push git@github.com:username/projectSub
Git 允许您拥有单独的 push
和 pull
网址。
我想要一个 github 项目 projectA,它使用子模块 projectSub。我还希望用户能够递归地克隆项目,自动获得 projectA 和 projectSub.
如果我错了请纠正我,但据我了解,克隆 https://github.com/username/projectname
意味着在推送之前会要求您输入用户名和密码,而克隆 git@github.com:username/projectname
将使用您的 ssh自动凭据。
现在,我可以这样添加子模块了
git add submodule git@github.com:username/projectSub
或因此
git add submodule https://github.com/username/projectSub
如果我使用第一种方法,没有 ssh 访问项目的用户将无法递归克隆projectA,因为.gitmodules
文件包含 git@github.com:...
.
但是如果我使用第二种方法,在将更新推送到 projectSub 时,具有 ssh 访问项目的用户 仍然会被要求提供用户名和密码,因为 .gitmodules
文件包含 https://github.com/...
.
有没有办法让这两种用户都能使用? (或者我完全误解了它是如何工作的?)
Is there a way to make this work for both kinds of users? (Or have I completely misunderstood how this works?)
使用子模块时,我发现将子模块视为只读克隆最简单。如果我需要进行更新,我会单独克隆上游存储库,然后 git pull
将更改放入子模块。
也就是说,您仍然可以完成这项工作。默认使用 https://
网址。对于需要推送更改的人,他们将:
git remote set-url --push git@github.com:username/projectSub
Git 允许您拥有单独的 push
和 pull
网址。