我是一名经验丰富的 Go 开发人员和 Git 用户,但有些事情我似乎无法理解。
通常我的团队使用.gitmodules
包依赖项,这是一个成功的模式,因为它指向一个精确的提交。整个“卖货问题”就这样为我们解决了。
但是,我最近创建了一个项目,用于go get
从 GitHub 获取各种包,而不是使用git submodule add
. 我完成了项目,将所有内容提交到我的 git repo,但是当队友克隆出 repo 时,依赖项的源代码丢失了。
通常我会说“哦,你忘了运行git submodule update --init
”,但它们当然不是子模块。所以...我可以告诉他运行go get -u
或其他什么(对吗?),但这意味着我受依赖的主分支的摆布——进入供应商。
我真正的问题是:当我一个包然后将它提交到我的存储库时实际发生了什么go get
?它没有提交到我的源代码树中,也不是子模块......我不知道它到底是什么!go get
和 Git 在这里行为和交互的确切方式是什么?
奖金回合:你为什么想要这种行为?在什么情况下,您希望将另一个项目提交到您的 repo 中,以强制新签出每次都提取最新版本的源代码?
料青山看我应如是
相关分类