我有一个git存储库,它使用一个子模块,我想将其指向带注释的标签,但是当我执行gitsubmoduleupdate时,不会获取新标签。我可以通过cd-ing进入子模块并在那里执行gitfetch--tags来在子模块中获取新标签,但我真的很想按照脚本从外部执行所有这些操作。我在git文档中找不到任何建议让gitsubmoduleupdate包含标签的方法(我的git版本是1.7.3.5)。显然还有另一种可能性-将子模块指向标签指向的提交而不是标签本身,但这看起来不太整洁。有没有办法让gitsubmoduleupdate包含标签? 最佳答案
我有一个git存储库,它使用一个子模块,我想将其指向带注释的标签,但是当我执行gitsubmoduleupdate时,不会获取新标签。我可以通过cd-ing进入子模块并在那里执行gitfetch--tags来在子模块中获取新标签,但我真的很想按照脚本从外部执行所有这些操作。我在git文档中找不到任何建议让gitsubmoduleupdate包含标签的方法(我的git版本是1.7.3.5)。显然还有另一种可能性-将子模块指向标签指向的提交而不是标签本身,但这看起来不太整洁。有没有办法让gitsubmoduleupdate包含标签? 最佳答案
我有一个项目,其中包含来自git的2个子模块。这两个项目都启用了“nugetpackagerestore”,父项目也是如此。两个包含的子模块中的包文件夹未checkin,在checkout的项目中不存在。在构建父项目时,Nuget尝试将子文件夹中的包恢复到错误的包文件夹中!"C:\Dev\git\oasisdb\odb_oasis_repository\ODB_OASIS_Repository\.nuget\NuGet.exe"install"C:\Dev\git\oasisdb\odb_oasis_repository\odb_oasis_rvm\ODB_OASIS_RVM_EF\O
我有一个项目,其中包含来自git的2个子模块。这两个项目都启用了“nugetpackagerestore”,父项目也是如此。两个包含的子模块中的包文件夹未checkin,在checkout的项目中不存在。在构建父项目时,Nuget尝试将子文件夹中的包恢复到错误的包文件夹中!"C:\Dev\git\oasisdb\odb_oasis_repository\ODB_OASIS_Repository\.nuget\NuGet.exe"install"C:\Dev\git\oasisdb\odb_oasis_repository\odb_oasis_rvm\ODB_OASIS_RVM_EF\O
许多供应商的Objective-C库(例如,facebook-ios-sdk)指示您将其repo文件/目录的特定子集复制到您的Xcode项目中。这样做的一个问题是您不知道您拥有的供应商代码的修订版本。另一个是,如果您对供应商代码进行了更改,则很难通过Git贡献您的更改。作为解决方案,我想将每个供应商库添加为我的项目存储库的Git子模块,并添加一些额外的设置(例如,在.gitmodules文件中)。这样,如果另一个人克隆我的项目并执行gitsubmoduleupdate--init,他们的repo和子模块将具有与我相同的状态,因为他们将使用我设置的相同默认设置:稀疏checkout:只c
许多供应商的Objective-C库(例如,facebook-ios-sdk)指示您将其repo文件/目录的特定子集复制到您的Xcode项目中。这样做的一个问题是您不知道您拥有的供应商代码的修订版本。另一个是,如果您对供应商代码进行了更改,则很难通过Git贡献您的更改。作为解决方案,我想将每个供应商库添加为我的项目存储库的Git子模块,并添加一些额外的设置(例如,在.gitmodules文件中)。这样,如果另一个人克隆我的项目并执行gitsubmoduleupdate--init,他们的repo和子模块将具有与我相同的状态,因为他们将使用我设置的相同默认设置:稀疏checkout:只c
我从没想过重命名一个git存储库(更具体地说,它是包含项目的顶级文件夹)会如此困难。是的,该项目包含一些子模块,但需要重命名的是顶级文件夹,而不是子模块文件夹。Git似乎在其子模块机制中记录了一些奇怪的绝对路径。假设您所有的项目都位于/tmp中。你有一个proj_master和proj_mod。您将porj_master克隆为proj_ALL,然后将prom_mod克隆为其中的子模块。您将proj_ALL重命名为proj_onebillion。然后黑魔法发生了。以下步骤将重现我提到的问题。我使用的git版本是:$git--versiongitversion1.7.9.5初始化proj_
我从没想过重命名一个git存储库(更具体地说,它是包含项目的顶级文件夹)会如此困难。是的,该项目包含一些子模块,但需要重命名的是顶级文件夹,而不是子模块文件夹。Git似乎在其子模块机制中记录了一些奇怪的绝对路径。假设您所有的项目都位于/tmp中。你有一个proj_master和proj_mod。您将porj_master克隆为proj_ALL,然后将prom_mod克隆为其中的子模块。您将proj_ALL重命名为proj_onebillion。然后黑魔法发生了。以下步骤将重现我提到的问题。我使用的git版本是:$git--versiongitversion1.7.9.5初始化proj_
在git中有什么方法可以知道你是否在子模块中?你可以在父目录中做gitsubmoduleforeach这样的想法,但我似乎无法想出一种通用的方法来表明你在一个子模块中,如果你在一个子模块中,或者在子模块内的任何子目录。我猜你可以用gitrev-parse--show-toplevel找到reporoot,然后cd-ing上一层,再次找到那个repo的root,然后比较当前目录的子模块列表,但这看起来很粘...... 最佳答案 (2017年4月更新Git2.13,2017年第2季度)现在有一个官方命令来确定一个repo是否是父repo
在git中有什么方法可以知道你是否在子模块中?你可以在父目录中做gitsubmoduleforeach这样的想法,但我似乎无法想出一种通用的方法来表明你在一个子模块中,如果你在一个子模块中,或者在子模块内的任何子目录。我猜你可以用gitrev-parse--show-toplevel找到reporoot,然后cd-ing上一层,再次找到那个repo的root,然后比较当前目录的子模块列表,但这看起来很粘...... 最佳答案 (2017年4月更新Git2.13,2017年第2季度)现在有一个官方命令来确定一个repo是否是父repo