相关疑难解决方法(0)

如何克隆仅Git存储库的子目录?

我有我的Git存储库,它在根目录下有两个子目录:

/finisht
/static
Run Code Online (Sandbox Code Playgroud)

当这是在SVN,/finisht在一个地方签出,而/static在其他地方查出来,像这样:

svn co svn+ssh://admin@domain.com/home/admin/repos/finisht/static static
Run Code Online (Sandbox Code Playgroud)

有没有办法用Git做到这一点?

git repository git-clone subdirectory sparse-checkout

1298
推荐指数
18
解决办法
73万
查看次数

如何将git子模块更改为指向子文件夹?

浏览SubModule教程,我从boto项目中创建了一个子模块.然后,我发现我实际上只需要这个项目的一个子集 - 特别是boto文件夹.

我想更改我的子模块以指向此文件夹.当我查看.gitmodules时,我明白了

[submodule "backup/src/boto"]
    path = backup/src/boto
    url = https://github.com/boto/boto.git
Run Code Online (Sandbox Code Playgroud)

我应该使用什么URL而不是https://github.com/boto/boto.git?更改URL后,我应该在本地删除boto文件夹并重新拉出吗?

git git-submodules

92
推荐指数
4
解决办法
5万
查看次数

如何将git repo中的特定文件夹添加为git子模块?

我有一个git repo,我想为它添加一个子模块.问题是,子模块作为另一个仓库内的文件夹存在.我可以只将该文件夹添加为子模块吗?

git git-submodules

32
推荐指数
2
解决办法
2万
查看次数

使用Git跟踪第三方代码

我似乎无法理解我发现并研究用于跟踪外部代码的不同解决方案.更别说了解如何将它们应用到我的用例中......

你们真的很善于对此有所了解并帮助我解决具体的用例吗?对于以下具体问题,最佳解决方案是什么?(我不会试图概括我的问题,因为我可能会对事情做出错误的假设,特别是因为我对这一切都很新......)

我正在Django(Python中的Web框架)中构建一个网站.现在,有许多第三方插件可供Django使用(Django称之为"应用程序"),您可以放入项目中.其中一些应用程序可能需要一些修改才能像我想要的那样工作.但是,如果您开始对第三方代码进行修改,则会引入在更新版本出现时更新该代码的问题,同时保留您的本地修改.

所以,我在Subversion中这样做的方法是使用供应商分支.我的存储库布局如下所示:

/trunk
  ...
  /apps
    /blog-app
  ...
/tags
  ...
/branches
  ...
/vendor
  /django-apps
    /blog-app
      /1.2
      /1.3
      /current
    /other-app
      /3.2
      /current
Run Code Online (Sandbox Code Playgroud)

在这种情况下,/ trunk/apps/blog-app将被复制到/ vendor/django-apps/blog-app中的一个标签.说它是v1.2.而且我现在想将我的版本在trunk中升级到v1.3.如您所见,我已将/ vendor/django-apps/blog-app/current(使用svn_load_dirs)和'tagged'(svn copy)更新为/vendor/django-apps/blog-app/1.3.现在我可以通过svn合并/ trunk/apps上的/vendor/django-apps/blog-app/1.2和/vendor/django-apps/blog-app/1.3之间的更改来更新/ trunk/apps/blog-app /博客应用程序内.这将保留我当地的变化.(对于未知此过程的人,请参阅Subversion手册:http: //svnbook.red-bean.com/en/1.5/svn.advanced.vendorbr.html)

现在我想在Git中完成整个过程.我怎样才能做到这一点?

让我重新讨论一下这些要求:

  • 我必须能够将外部代码放在树中的任意位置
  • 我必须能够修改外部代码并在我的Git存储库中保留(提交)这些修改
  • 如果发布新版本,我必须能够轻松更新外部代码,同时保留我的更改

额外(奖励积分;-)):

  • 我最好不要像svn_load_dirs这样做.我认为应该可以直接从他们的存储库跟踪应用程序及其更新(大多数第三方Django应用程序保存在Subversion中).能够在发布版本之间查看单个提交消息,这给了我额外的好处.并且更容易修复合并冲突,因为我可以处理许多小提交而不是svn_load_dirs创建的一个人为提交.我想在Subversion中使用svn:externals可以做到这一点,但我以前从未使用过它...

可以使用两种方法的组合的解决方案将更加可取,因为可能有应用程序开发人员不使用源代码管理或不公开他们的回购.(意思是svn_load_dirs之类的行为和直接从Subversion重新定位(或其他Git)跟踪)

我想我要么必须使用子树,子模块,rebase,分支......或者这些的组合,但是如果我知道哪一个或者怎么做就打倒我:S

我急切地等待你的回复!回复时请尽可能详细,因为我已经很难理解在线发现的其他例子.

提前致谢

git

24
推荐指数
1
解决办法
1万
查看次数