该git clone --depth命令选项说
--depth <depth>
Create a shallow clone with a history truncated to the specified number of revisions.
A shallow repository has a number of limitations
(you cannot clone or fetch from it, nor push from nor into it),
but is adequate if you are only interested in the recent history of a large project with a long history,
and would want to send in fixes as patches.
Run Code Online (Sandbox Code Playgroud)
为什么浅克隆有这种限制?为什么它只是一个补丁工作流程?
对于某些项目工作流程,我需要将最新的提交从单个分支传递给编码器,然后让它们能够push(快进)开发到主服务器.这部分是为了安全,知识产权保护和回购规模,部分是为了减少大回购会给天真编码员带来的困惑.是否有允许这样的git工作流程?
更新:根据Karl Bielefeldt的回答,git checkout --orphan …
我很抱歉,如果这很明显或很容易,我已经看了很多git/github教程并阅读了其他文章,但我想确保我所做的是对的.
我想将VC(出于显而易见的原因)合并到我的开发团队和流程中.
当前开发过程(使用Dreamweaver):
*接收票证(或工作单)
*在开发服务器上下载文件
*对文件进行更改
*将文件上载回开发服务器
*更改已测试/验证
*发送到生产服务器
我正试图弄清楚如何使用Git进行新的开发过程.
我正在切换到PHPStorm(这是一个与Git直接集成的实际PHP IDE).
它会是什么样的
或者做一些类似的事情会更好
或者还有另一种方式吗?理解什么是最佳流程有点麻烦?
任何帮助将不胜感激.
编辑
我正在尝试看看是否最好在本地(每个开发人员)拥有一个版本的服务器,如果是这样,如果你有7个左右的分支,它是如何工作的?
如果没有,你如何在网上处理7个左右的分支?你是FTP文件还是使用Git Hooks使它们自动更新?
更新07/26/2012
在与Git成功合作了很长一段时间后,我一直在关注这个分支模型取得了巨大的成功: 一个成功的Git分支模型
上面的答案是肯定的 - 应该有一个本地版本的服务器.
我试图找出适合这种情况的工作流程:
在共享仓库中,我们有这些分支:
-master
-feature
Run Code Online (Sandbox Code Playgroud)
该功能分支是一个共享的分支,因为许多开发商都上了一个新的功能一起工作.他们正在积极地将他们的更改推送到功能分支.
这个功能最终被合并回主人的那一天,我试图避免"冲突地狱" .目前,我看到一些选择:
1)主动将master合并到功能中,并经常进行.但是,这不建议在git文档中使用,我开始明白为什么.当我尝试这个时,我似乎一遍又一遍地解决同样的冲突.
2)以某种方式使用rebase.我已经阅读了这篇文章,但由于功能分支实际上是共享的,所以看起来它不会工作.所需要的只是一个开发人员做2个rebase,而其他开发人员可能会因不匹配的历史而产生冲突.
3)将功能分支转换为集成分支,让开发人员使用自己独立的功能分支进行变基,以保持理智.
4)完全不同的东西?
我一直在寻找一个框架来简化Django应用程序中相当复杂的工作流程的开发.我希望能够使用该框架来自动化状态转换,应用权限,像审计日志记录和通知也许有些演员.
我看过一些关于同一主题的旧信息,但在过去的2 - 3年里并没有太多.我听说过的主要选择是GoFlow(自2009年2月起未更新)和django-workflow(似乎更活跃).
有人用这些包吗?它们是否成熟和/或与现代(1.3)Django兼容?还有其他值得考虑的选择可能会得到更好或更好的支持吗?
在我的项目中,我需要使用第三方代码,存储在几个Git存储库中.我的项目也存储在(单独的)Git存储库中.在主项目中有几个人和我一起工作,我是维护者.
在早期的项目中,我曾经手动将依赖项复制到Git工作树,添加一个指定我使用的版本的小文件.
现在这是相当不舒服的,因为我需要每天更新一个依赖项,并且经常自己贡献代码,大部分时间都伴随着对主项目的更改.
我决定尝试使用Git子模块进行管理.我尝试的越多,我就越沮丧.甚至看起来手动副本也许更好.
以下是我的一些担忧:
git checkout现在需要git submodule update --init).git archive最值得注意的是).git submodule无法使用--git-dir和--work-tree选项,并且需要将当前目录的物理更改为"工作树的顶层".似乎为了简化我们的子模块工作流程(即一个操作==一个命令),我们必须在Git周围编写一个相当厚的包装器.这真是难过;这真是伤心.
请注意,不能选择远离Git或将子项目开发完全合并到主项目中.
也许我用git submodules的是错误的方式?有没有关于工作流程的好教程?
即使您不知道正确的答案,请大家说出来,但请分享我的疑虑.:-)
我只是不明白.我想,Bundler的开发是为了解决宝石之间的版本冲突.因此我require "bundler/setup"知道Bundler将加载我所有宝石及其依赖项的正确版本.现在,RVM非常适合管理多个Rubies,我知道,但为什么我应该关心Gemset功能呢?我在这里想念一下吗?它能使我的开发更容易吗?也许,你们中的一些人可以给我一些关于开发和生产的完美RVM + Bundler工作流程的一些提示.
我也不知道RVM何时开始切换到另一个Ruby.我知道.rvmrc我的项目中可以有一个文件,但是我必须cd到这个目录才能进行切换吗?
此外,我通常使用Passenger进行开发,因为Passenger.prefpane在Mac OS中集成非常棒.我还能用RVM做到这一点还是有更好的方法呢?Passenger是否识别.rvmrc文件并切换到正确的Gemset?
我是我们网站开发公司的团队负责人,我想在我们的团队中实施Git工作流程.阅读文档和文章我发现以下结构对我们有益:
我们在Bitbucket中有一个存储库.主分支仅被视为包含稳定代码.每个开发必须建立自己的分公司,并实现他的特点/ bug修正自己的分公司.一旦他决定,他的代码准备就绪,他创建了一个很好的分支历史(使用rebase,修改,樱桃挑选等)并将其推送到Bitbucket,在那里创建一个拉动请求到主分支.质量检查验证功能并批准(或不批准)它,然后我验证代码,如果可以,我将他的工作合并为主(通过快进或重新定位以获得更好的提交历史记录).
但是这种方案只适用于单个开发人员在分支机构上工作的情况.在我们的例子中,我们几乎总是有两个开发人员用于一个分支,因为一个开发人员在服务器端(PHP),另一个开发人员在客户端(HTML/CSS/JS).这两者应该如何以一种方式进行协作,使主人的历史保持干净?
服务器开发人员创建HTML文件的基本结构,客户端开发人员需要获得此结构.逻辑上将为服务器dev创建一个分支,并为客户端dev创建自己的分支,基于服务器dev分支.但这意味着,服务器开发人员需要在Bitbucket中发布他的分支,这将使他无法重新定义或更改已经发布的提交.
另一个选择是等待,直到服务器开发人员完成他的工作,发布具有良好提交历史记录的分支并忘记它,并且只有在该客户端dev开始在该分支中工作之后,这将导致时间延迟,这甚至更糟.
您如何在工作流程中处理此类协作?
我一直在努力寻找一个引人注目的工作流用例(即:WF),而不是常规的命令式编程.每次我回到结论,我应该离开WF或推迟到晚些时候进入.但我一直有这种唠叨的感觉,有些东西不见了.
有谁知道任何真正为Workflow方式提供强有力理由的书?本书必须(i)很好地教授WF,以及(ii)使用适当的用例表明WF使实现变得容易,而不是我们只是进行常规的直接编码.
我会很感激的.
是否有任何javascript库用于客户端渲染和流程图的操作?我的偏好是jQuery,但我会满足于其他人.
这个问题之前已被问过,但几年之后都没有问过,所以我希望现在有一个更积极的答案!
这个问题已经被问一次,现在这个问题和答案最upvoted,最完整的版本是在这里: 在JavaScript图形可视化图书馆
我们目前正在评估BPM引擎,我非常感谢社区的意见.我正在做自己的尽职调查,但也想听听基于实施故事的建议.
我的主要评估标准如下
目前我正在评估Activiti和JBPM.Bonita open BPM似乎也是一个很好的候选者,但从未使用它.你们在Bonita上有成功的部署吗?