相关疑难解决方法(0)

什么是组件驱动开发?

组件驱动开发术语开始被广泛使用,尤其是 与控制反转有关.

  1. 它是什么?
  2. 它解决了什么问题?
  3. 什么时候适当,什么时候不适合?

paradigms components ioc-container inversion-of-control

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

Git - 包含来自其他存储库的文件

使用Git,我想在我的项目中包含一些常见的JS/CSS库和/或实用程序方法(即来自另一个repo的特定文件),我希望它能让它们始终保持最新状态.我真的不想要整个远程存储库.如果我可以处理远程文件的"本地副本"并将更改重新推送,则可以获得奖励.

一个有点平行的例子:在ASP.NET中,我会通过引用("远程")其他库的.dll文件(没有"copy local")来做到这一点,这样每当我重新编译外部库时,我的项目就会指向最新的版本.

示例场景

我的项目是...... MyProject,我只想要外部存储库ExternalLibraryExternal2中的几个文件.我不想在其他地方克隆每个存储库,并将文件复制粘贴到我的存储库中.如果我做了改进MyProject/scripts/common1.js,我想把它推回到ExternalLibrary.

  1. 我的项目/
    • 的index.html
    • 脚本/
      • mycode.js
      • otherplugin.js
      • common1.js < - 来自ExternalLibrary
      • plugin2.js < - 来自ExternalLibrary
    • 风格/
      • mystyle.css
      • common.css < - 来自External2
  2. ExternalLibrary /
    • common1.js
    • plugin1.js
    • plugin2.js
    • bunchofothercrap ...
  3. External2 /
    • common.css
    • bunchofothercrap ...

相关参考:

git workflow organization

19
推荐指数
1
解决办法
7057
查看次数

同步TFS和GIT

今天我们在本地TFS服务器上拥有所有源代码.现在我们希望一些外部方可以访问部分代码.因此,我们考虑将例如克隆到他们可以访问的外部GIT服务器的可能性.

我看过git-tfs.但是如果我理解正确的话,当它们发生任何变化时,你必须手动同步GIT和TFS.有没有办法克隆自动同步的代码.

如果TFS有变化,它会自动同步到GIT,反之亦然.如果我使用最新的代码,应该没有不确定性

git tfs git-tfs tfs2013

18
推荐指数
1
解决办法
8036
查看次数

高度耦合的git子模块

我有一个项目需要分成两个存储库:一组通用模型,以及基于这些模型的模拟,以及其他代码.最终可能会有多个模拟使用同一组模型,因此将它们放在一个单独的存储库中是一个明确的要求.显而易见的解决方案是将通用模型作为模拟的子模块.

不幸的是,这两个库的工作将非常高度耦合.人们会经常在他们的常见模型中添加一些东西,然后立即在模拟中使用它.我想这会在模拟回购的整合过程中引起很多麻烦.为了在模拟中合并来自许多开发人员的更改,集成商将不得不在通用模型子模块中进行并行合并.另一方面,它也使得使用子模块变得至关重要 - 模拟真的需要知道它应该使用哪个版本的常见模型.

该项目由相当多的人开展.大多数开发人员只对git有一个非常粗略的了解:他们添加文件,提交和从源头拉取很多东西,并希望有一个开发和稳定的分支.积分器自然学到了很多东西,但任何涉及子模块的东西对他来说肯定都是新的.额外的奖励:我即将休假一个月,所以我将无法扑灭任何火灾.结果是,有很多动机使工作流程变得非常难以搞砸,并最大限度地减少与以前工作流程的差异.

所以,我的问题是:我是否会后悔建议我们使用子模块?(有更好的想法吗?)我可以期待人们犯下什么样的错误,所以我可以提前警告他们?是否有任何好的工作流程策略要记住?

编辑:我刚遇到git slave,在这种情况下也许值得一看.还不能对其网站上的能力/限制进行良好的评估.

git git-submodules

16
推荐指数
2
解决办法
2300
查看次数

如何让`git clone --recursive`重新创建子模块的遥控器和分支?

我有一个带有一些子模块的项目.其中许多是从GitHub fork中克隆到的,我为自定义mod添加了一个分支.典型的设置如下:

在本地文件夹中:MyProject1/Frameworks/SomeAmazingRepo /

$ git branch -vva
*my-fork                       123456 [my-fork/my-fork] Latest commit msg from fork
master                         abcdef [origin/master] Latest commit msg from original repo
remotes/my-fork/my-fork        123456 [my-fork/my-fork] Latest commit msg from fork
remotes/my-fork/master         abcdef [origin/master] Latest commit msg from original repo
remotes/origin/HEAD            -> origin/master
remotes/origin/master          abcdef [origin/master] Latest commit msg from original repo

$ git remote -v
my-fork                        git@github.com:MyUser/SomeAmazingRepo.git (fetch)
my-fork                        git@github.com:MyUser/SomeAmazingRepo.git (push)
origin                         git://github.com/OriginalOwner/SomeAmazingRepo.git (fetch)
origin                         git://github.com/OriginalOwner/SomeAmazingRepo.git (push)
Run Code Online (Sandbox Code Playgroud)

git clone --recursive我的项目开始一个新的分拆计划,当它开始递归,它吐出了一个错误,声称它找不到这些回购存储的提交.检查后,似乎没有添加遥控器,并且分支机构在主机中留下(空)...

在本地文件夹中:MyProject2/Frameworks/SomeAmazingRepo /

$ git branch …
Run Code Online (Sandbox Code Playgroud)

git cloning git-clone git-remote git-submodules

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

Git忽略已删除的文件

我有一个网站项目,在一些目录中有超过50,000个不重要的文件(开发).

/website.com/files/1.txt
/website.com/files/2.txt
/website.com/files/3.txt
/website.com/files/etc.txt
Run Code Online (Sandbox Code Playgroud)

/ files中的内容已经在repo中.我想删除本地副本上的/ files中的所有文件,但是我希望git忽略它,所以当我在Web服务器上拉动时它不会删除它们.

有任何想法吗?

git ignore delete-file web

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

理解git子模块并在特定的提交哈希或版本中"冻结"它

假设以下项目布局: -

mainrepo_git
    |____ .git
    |____ .gitmodules
    |____ proj            <------- directory containing the code files for mainrepo
            |____ 3rdpartysourcecode <-- directory containing upstream open source code
            |      |____ .git
            |      |____ 3rdpartyfiles
            |
            |____ mainrepofilesanddirectories  
Run Code Online (Sandbox Code Playgroud)

mainrepo_git包含我直接负责的源代码.我有读/写访问权限,可以直接推送到我管理的远程git存储库.

嵌套在mainrepo_git中的是一个名为3rdpartysourcecode的目录.这个3rdpartysourcecode目录实际上是另一个git repo(通常也称为"git submodule"),它指向由其他开发人员管理的开源第三方git存储库.我只有读取权限.没有写访问权限.

有没有办法'冻结'git子模块的特定提交哈希与我的主存储库中提交的相关?

例如,如果我在(或我恢复)在我的mainrepo中提交a12ucak,我的git子模块也会被恢复为特定版本,我将其绑定为提交a12ucak?当我切换到提交b349jdsak时,我的git子模块也会恢复到我绑定到b349jdsak的版本?

所以我的问题是:有一种方法可以在主仓库中的特定提交与git子模块中的相应提交之间创建链接吗?以这种方式,当我在主git repo中检出特定提交时,git子模块中的相应提交也将是checkout.

git git-submodules

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

为什么git子模块与svn externals不兼容?

有很多网页在那里暗示让svn外部看起来像git子模块的hackish方法.我已经读过一些关于差异的说法,但这似乎不是很基础:

Git子模块链接到另一个项目的存储库中的特定提交,而svn:externals总是获取最新的修订.

为什么这种差异会使它们根本不相容?我们可以假设没有合理的默认值,例如大多数svn:externals指向永不移动的标签吗?

svn git git-svn svn-externals git-submodules

13
推荐指数
1
解决办法
6991
查看次数

如何git-pull除了一个文件夹

有没有办法git pull存储库中的所有文件夹,但有一个?我不想创建一个.gitignore文件,因为其他人可能想要这个文件夹 - 它现在对我来说太大了.

谢谢!

git

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

在子目录位于主仓库和子模块中的分支之间切换

我们已经将一个子目录S变成了一个单独的仓库,并将其重新添加为分支B中的子模块.现在,当我想切换回原始分支A时,子目录被检入原始仓库,git抱怨来自子模块的东西是未跟踪的,必须先将其移走.我们可以切换回A,而无需手动拖动S并将它移回B中吗?

更新:下面的评论表明它可能是旧分支的缺陷,并且git不愿意在这里做一件聪明的事情.是这样的,在主回购中使用S的原始分支有什么样的变基(如果有的话)可以让它在任何时候与子模块化版本共存并且可以结账吗?

git git-submodules

12
推荐指数
1
解决办法
9189
查看次数