我有一个存储库,我希望有两个"视图":开发人员可以看到整个事情,客户应该只看到某些(标记或以其他方式标记)分支.
我想要制作两个reporitories A和B,然后将所有不需要的文件列为B中的"忽略文件",但我不确定这是否有效.(我不知道是否A同步B被忽略的文件,可能是一个知道可以回答的人吗?)
因此,我认为如果我可以在存储库中创建"视图"(仅显示标签X ..)或类似的解决我的问题的东西,那将会很酷,但是在git中这不可能.
亲切的问候
我的项目有一个标准的存储库
/home/repo/.git
Run Code Online (Sandbox Code Playgroud)
这是我克隆的存储库,以获取新网站的基本代码,即我克隆了这个
/var/www/site1
Run Code Online (Sandbox Code Playgroud)
我也有几个模块,我作为存储库创建,一些网站将使用这些模块,一些不会.
/home/modules/mod1/.git
/home/modules/mod2/.git
Run Code Online (Sandbox Code Playgroud)
有没有办法可以将这些模块克隆到同一个站点文件夹中?
/var/www/site1
Run Code Online (Sandbox Code Playgroud)
模块目录设置与主仓库具有相同的文件夹结构,当我在主仓库克隆顶部克隆它们时,它们应合并/替换现有文件.(很少有文件重叠)
我的最佳解决方案是以某种方式命名repo,以便在部署新站点时我执行以下操作:
cd /var/www/newsite
git clone /home/repo/.git
git clone /home/modules/mod1/.git
git clone /home/moudles/mod2/.git
Run Code Online (Sandbox Code Playgroud)
当我有更新到网站,我可以做一个像拉:
git pull origin master
git pull mod1
git pull mod2
Run Code Online (Sandbox Code Playgroud)
或者最好:
git pull origin master
Run Code Online (Sandbox Code Playgroud)
也会称之为拉动mod1
和mod2
.
我一直在看git子模块和分支,但无法弄清楚它们是否是我需要的.
我们有几个开发团队,每个团队开发多个项目(通常为10个以上).我们目前正在使用CVS并评估是否转向SVN或GIT.我倾向于GIT,但我不确定如何有效地管理权限.例如.
我们有Dev Team A,Dev Team B,Dev Team C.每个都有12个开发人员.每个开发团队至少有10个独立的项目.A队可以看到每个人的代码,B队和C队只能看到他们的代码.此外,一些开发人员只具有只读访问权限,而其他人具有完全访
所以在CVS中我们有三个存储库,每个团队一个.所以它就像:
/cvsroot/TeamARepos/project1
/cvsroot/TeamARepos/project2
/cvsroot/TeamBRepos/project1
/cvsroot/TeamBRepos/project2
/cvsroot/TeamCRepos/project1
/cvsroot/TeamCRepos/project2
Run Code Online (Sandbox Code Playgroud)
等等.我可以管理整个存储库,并说John Doe只读访问A但写入访问权限B并且无法访问C - 因此我不必让他明确访问每个项目(并且它们经常被添加,所以我不必每次都将每个人添加到每个新项目中.
我对GIT的理解是每个项目都有一个存储库.因此,没有一种真正合乎逻辑的方式可以说'团队A的所有代码都在这里并且这些用户可以写入'并且'团队B的所有代码都在这里,这些用户可以阅读它'并保持它的分离.
我不确定我是否知道如何正确地提出这个问题 - 但我认为转向GIT是一场行政噩梦.
我们还使用ant脚本来检查CVS中的代码,执行构建并部署到服务器.我刚开始看,但我希望蚂蚁在这个意义上与GIT打得很好.
我在这个问题上已经看到Github组织是一个"重新组合"存储库的解决方案,作为文件夹中的文件.
但在我阅读Github组织文档时,似乎组织的目的是代表开发人员组或公司,而不仅仅是个人存储库程序集.
所以我的问题是:如果我独自工作,将组织用作文件夹是一种好习惯吗?
我的意思是,组织是否被设计为用作文件夹?如果没有,很多人会以这种方式使用它吗?
我有一个名为"foo"的github存储库(或者更确切地说是"myusername/foo").现在假设我想创建一个名为"bar"的存储库,它使用foo中的代码; 我只能制作文件的副本,但我不想需要提取更新 - 我想总是只看到"foo"存储库中的任何内容; 并且没有提交"来自foo的更新".我相信我已经注意到一些存储库,其中子文件夹实际上是单独的存储库; 我知道git支持子存储库或其他一些东西.那么,我可以执行这样的"存储库挂载"吗?如果是这样,怎么样?
如果我可以在某个版本或某个分支而不是主分支上安装"挂载",则可以获得奖励积分
如何从共享父目录更新多个 Mercurial (hg) 存储库?
/plugins/search
/plugins/overview
/plugins/chart
Run Code Online (Sandbox Code Playgroud)
我想将一个分支更改为默认分支并立即更新它们
cd /plugins/search
hg update -C default
hg pull -u
Run Code Online (Sandbox Code Playgroud) 我正在使用许多不同的Git repos,需要合并在一起.工作流程如下所示:
git remote add fork1 ...
git remote add fork2 ...
git fetch fork1
git fetch fork2
git merge fork1/master fork2/master
Run Code Online (Sandbox Code Playgroud)
这一切都很好,但我希望能够使用标签提取每个远程的特定提交:
git merge fork1/v1.0.0 fork2/v2.1.0
Run Code Online (Sandbox Code Playgroud)
永远不应该有任何合并冲突,因为每个repo都会将其更改限制在一个子文件夹中,但即使存在,章鱼合并也会导致整个事务以原子方式失败.
问题在于标签引用.正如本博文中所述(不是我的),所有标签都被莫名其妙地转储到全局命名空间中.没有办法说fork1/v1.0.0
- 只是v1.0.0
,如果多个存储库具有相同的标记,它们会相互挤压.
在这个答案之后,我一直在研究使用refspec来解决这个问题.到目前为止,我已经提出以下建议:
git fetch fork1 refs/tags/*:refs/tags/fork1/*
Run Code Online (Sandbox Code Playgroud)
这具有使fork1的v1.0.0
标签到达的预期效果fork1/v1.0.0
.不幸的是,它也以非命名空间的形式出现v1.0.0
; git fetch
在标记映射部分打印出两倍的行,并且git merge v1.0.0
仍然与提取的标记合并.我无法在任何地方找到关于refspecs的好文档(Git关于该主题的文档非常无用).
如何防止多个存储库中的标记相互冲突?
如果我只是愚蠢地谈论这个问题,我也会接受其他工作流建议.我有一个核心仓库,它包含共享组件和结构,以及一些模块repos,它们是核心的完整克隆,只添加了代码.我目前的计划是让每个模块都有一个指向核心的远程指针(以保持共享部分的最新状态)以及它所依赖的每个其他模块.共享位将合并,因为它们是相同的,并且模块位将合并,因为它们是独立的.我应该遵循另一种模式吗?(我避免使用子模块,因为(a)我从来没有听说过有关它们的任何好处,而且(b)共享部分是项目目录结构的顶级部分,这使得repo结构非常笨拙.)
我需要一个设置才能使用以下任一方式编译 Java Maven 项目:
项目 POM 代码已经引用了内部公司存储库:
<repositories>
<repository>
<id>artifactory-virtual</id>
<name>My Artifactory Repository to download</name>
<url>https://artifactory.corporation.com/maven</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
Run Code Online (Sandbox Code Playgroud)
但要使用此存储库需要 VPN 连接,我希望避免这种情况。
我正在尝试使用此 Maven 文档设置存储库镜像。
~/.m2/settings.xml
因此我在以下配置中进行配置:
<?xml version="1.0" encoding="UTF-8"?>
<settings>
...
<mirrors>
<mirror>
<id>icm-mirror</id>
<url>http://maven.icm.edu.pl/artifactory/repo/</url>
<mirrorOf>*,!central</mirrorOf>
</mirror>
</mirrors>
...
</settings>
Run Code Online (Sandbox Code Playgroud)
但仅提供一个镜像(对于除中央库之外的所有存储库),该项目仍在尝试从公司存储库下载(我不提供任何):
[ERROR] Failed to execute goal on project ibis-customer-management:
Could not resolve dependencies for project com.example.project:myproject:jar:3.7.1-SNAPSHOT:
Failed to collect …
Run Code Online (Sandbox Code Playgroud) 假设我有两个Visual Studio 2010项目,两个都在同一个解决方案中.
一个项目是用于执行任务x的dll库.另一个是该库的Windows窗体GUI前端.
让我们假设我开始使用两个不同的mercurial存储库开发这两个项目(每个项目一个).
假设我想将这两个存储库合并到两个项目的总体解决方案的一个存储库中(不会丢失任何提交消息).
这有可能(或者甚至是个好主意吗?)
mercurial repository visual-studio-2010 multiple-repositories
我是 git 新手,我的任务是将现有项目转移到 git 中。我遇到的问题是这实际上是两个项目。我们将该项目称为“One”。一个实际上既是一个报告站点,也是一组由各个项目使用的代码模板(这使得报告站点能够在项目之间运行报告标准)。我们希望在我们的开发和报告服务器上运行报告站点,并在我们的开发和生产服务器上拥有代码模板。因此,有时需要两个存储库,有时只需要 1 个存储库。其中一个存储库的代码结构如下所示:
/one (generic main dir, no files, only sub-dirs)
/onesource (PHP source code for the reporting site)
/onerept (reports run by the reporting site)
/onelib (templates)
/oneinc (include files used by templates)
/oneadmn (files used by both)
Run Code Online (Sandbox Code Playgroud)
因此,报告站点存储库将希望包含 onesource 和 oneerept 子目录,而模板存储库将希望包含 onelib 和 oneinc 目录。如果需要,我可以将 oneadmn 目录设置为服务器之间的共享安装。当前所有内容都设置为共享安装,但由于多种原因,这很糟糕。
我如何在 git 中进行设置?