Questions tagged «git»

Git是开源DVCS(分布式版本控制系统)

2
总结Git中的更改(插入和删除)
我想看看我的代码库是如何随着时间增长的。GitHub +/-在签入列表中显示得很好,这给人一种感觉。我可以在Google Code托管存储库或脱机存储库中使用类似的东西吗?
47 git 

4
github维护者是否应该在pull请求中重写作者的?
我不是专业的程序员,但是我做了一些编码,并使用了github。我遇到了令人惊讶的情况。我对git非常熟悉。 我有一个项目发现一个(小)错误影响了我。我花了一个下午找到并修复它。我分叉了存储库,提交了更改,并发出了请求请求。看到它关闭为“合并到开发部门”后,我发现一切都很好。 我今天正在浏览存储库,准备删除分支,但根本找不到提交合并到维护者存储库中的位置。一段时间后,我意识到它已被添加为提交,但作者不再是我。 据我所知,唯一的方法是专门使用重新基准,修改或其他历史记录重写来删除原始作者。 我觉得这很不对劲。充其量是令人困惑的,最糟糕的是,此回购协议的作者会为每个人的贡献表示赞赏,然后失去了原始贡献者的历史。再次,这是一个小错误,我不会在专业简历中使用它,这似乎是不诚实的。 这正常吗?我应该说些什么吗? 编辑:总体感觉似乎是我应该去问问,所以今天早上我就去做。 按照下面的要求。我检查了一下,发现我的代码存在,并在编写它时(包括注释)被完全应用了。我确认提交者和作者均已更改。我的更改同时也添加了另一项更改。这是一行,可能会影响补丁程序以及之前的其他代码。IE浏览器的单行添加与我正在修复的错误无关。 更新 似乎答案是作者维护了一个开发分支,并且不想将其主分支合并到该分支中。他重新撰写了我的承诺以避免合并。我并不关心原始分支b / c git是否足够强大,可以根据需要进行选择,重新设置基础和合并提交。 这在github上是典型的吗? 我是否应该联系项目的维护者以询问向哪个分支应用补丁?
44 git  github 

5
了解SVN和Git之间的分支差异
我是SVN的用户,现在我正在学习Git。 在SVN中,我通常在本地计算机上签出一个仓库,其中包括项目中的所有分支,并且我曾经为我感兴趣的分支选择文件夹并在其中工作。 我发现使用Git有所不同。 目前,我正在克隆一个仓库,并使用gitk克隆一个特定的分支。 项目文件夹仅包含该分支的内容,而我看不到SVN中的所有分支,这对我来说有点困惑。 我找不到使用Git查看本地存储库中所有分支的简便方法。 我想知道我描述的Git流程是否是“标准”的,是否有些正确,或者我缺少一些东西。 另外,我想知道如何处理需要同时在两个分支上工作的流程,以防万一,例如,我需要在master上进行修补,但还要保留另一个分支的内容。 建议使用什么名称约定来制作包含从Git中的仓库中克隆的分支的文件夹myproject-branchname?
44 git  github 

8
自动还原失败的提交
我的一位同事告诉我,他正在考虑使我们的CI服务器还原失败构建的提交,因此HEADin master始终是稳定的(至少在通过构建时如此)。 这是最佳实践master吗?还是比在开发人员修复它之前让它崩溃更成问题? 我的想法是,还原提交会使读取提交和修复的任务变得更加复杂(开发人员必须先还原还原,然后提交修复,这也会使混乱git log),我们应该离开提交然后提交固定。尽管我看到了master稳定的优点,但是这种失败提交的还原并不能说服我。 编辑:不管是master开发分支还是其他任何开发分支都没有关系,但问题仍然存在:CI系统是否应还原使构建失败的提交? 另一个(冗长)编辑:好的,我们git以一种奇怪的方式使用。我们认为,分支的概念与真实CI背道而驰,因为提交分支会使您与其他开发人员及其更改隔离开来,并在您不得不重新集成分支并处理可能的冲突时增加了时间。如果每个人都致力于master此冲突,则将冲突减至最少,并且每次提交均通过所有测试。 当然,这迫使您只推稳定(或破坏构建)并更仔细地编程,以免在引入新功能时破坏向后兼容性或进行功能切换。 以此方式进行CI时需要权衡取舍,但这超出了问题的范围(有关此问题,请参阅相关问题)。如果您愿意,我可以改写这个问题:一小群开发人员在功能分支中一起工作。如果一个开发人员提交的内容破坏了该分支的构建,则CI系统是否应还原提交?

4
git-flow和github进行代码审查
使用常规的git和github,我可以通过简单地创建我正在处理的功能分支到master分支的拉取请求来进行代码审查。我将如何使用git-flow进行代码审查?使用“ git flow功能完成”之类的工作流程,我对代码审查实际上发生在何处以及git-flow或git如何促进该审查感到困惑。

6
处理重构大文件的最佳方法是什么?
我目前正在做一个更大的项目,不幸的是其中有些文件的软件质量准则并不总是遵循的。这包括大文件(读取2000-4000行),这些文件显然包含多个不同的功能。 现在,我想将这些大文件重构为多个小文件。问题是,由于它们很大,因此不同分支上的多个人(包括我)正在处理这些文件。因此,我无法真正从开发和重构中分支出来,因为将这些重构与其他人的更改合并将变得很困难。 当然,我们可以要求每个人重新合并以开发,“冻结”文件(即,不再允许任何人对其进行编辑),重构然后“取消冻结”。但这也不是一件好事,因为这将要求每个人在重构完成之前基本上停止对这些文件的工作。 因此,有没有一种方法可以重构,不要求其他人停止工作(很长时间)或合并其功能分支以进行开发?

11
提交非工作代码可以吗?
要求仅提交工作代码是个好主意吗? 此提交无需使存储库处于工作状态,如下所示: ...我们正处于早期设计阶段,代码尚不稳定。 ...您是该项目的唯一开发人员。你知道为什么事情不起作用。此外,您不会通过提交损坏的代码来停止任何人的工作。 ...该代码目前无法正常工作。我们将对其进行重大更改。让我们承诺,以便在事情变得丑陋时有一点可以还原。 ...链很长,如果本地分支中存在损坏的代码,则不会有任何麻烦。即 本地文件 暂存区 提交到本地分支 提交到远程个人功能分支 与远程develop分支合并 与远程master分支合并 与远程release分支合并 ...提早提交,经常提交。 因此,在上面链接的问题中,大多数答案都说,提交不可编译的代码在本地和功能分支中没有问题。为什么?提交失败的价值是什么? 补充:有几条备受赞誉的评论,说在当地一家人可以做任何想做的事。但是,我对该问题的技术方面不感兴趣。相反,我想学习最佳实践-习惯,这些习惯在行业中已经工作了很多年,他们的工作效率最高。 我惊讶于大量的出色答案!他们得出的结论是,我不擅长使用分支来组织代码。

1
在GitHub上没有请求的情况下从派生的仓库中提取更改?
我是社交编码社区的新手,不知道在这种情况下如何正确进行: 我几周前创建了一个GitHub Repository。有人分叉了该项目,并做了一些我要做的小改动。我很高兴有人分叉我的项目并花时间将其添加到项目中。我想将所做的更改放入我自己的代码中,但有两个问题。 1)我不知道如何通过git从派生的仓库中获取更改。 我的理解是,有一种简单的方法可以通过请求请求合并更改,但似乎分叉者必须发出该请求? 2)在没有拉取请求的情况下拉入更改是否可以接受?这与第一个有关。我将代码搁置了几个星期,然后回来发现我接下来要进行的工作是由其他人完成的,并且不想只复制他们的代码而不给他们以某种方式的认可。即使没有明确要求您进行变更,也不应存在吗?这是什么礼节 我可能会对此有所考虑,但在此先感谢您的投入。我对黑客社区还很陌生,但是我想尽我所能!
40 git  github  etiquette 


2
Git和Mercurial受欢迎程度的经验证据
是2012年!Mercurial和Git仍然很强大。 我了解两者的权衡。我也了解每个人都偏爱其中一种。没关系。 我正在寻找有关两者使用水平的一些信息。例如,在stackoverflow.com上,搜索Git可获得12000次点击,Mercurial可获得3000 次点击。Google趋势表示,Git为1.9:1.0。 还有哪些其他经验信息可用来估计这两种工具的相对使用情况?
37 git  mercurial 

3
重用合并的分支,好的做法?
当前,每次必须向应用程序中添加新功能时,我都会创建一个新分支。 功能完成并可以正常工作后,我将其与master分支合并。 但是稍后,当我需要更新此功能(如改进)时,创建一个新分支会更好还是还是需要使用master重新建立以前的分支,然后进行更新然后再次合并? 例如,我在Ruby on Rails应用程序中有一个名为modelling-member的分支。稍后,我需要向成员模型添加一些属性(在此分支中创建)。我该怎么办?使用母版对该分支进行基础设置,更新模型并再次合并,还是只是创建一个新分支?
36 git  branching 

8
是否每个git commit都会使项目处于工作状态?
我很好奇目前流行的最佳实践是什么。应该强制执行git commit,以使项目处于工作状态(正确构建,所有测试通过等),还是提交损坏的代码可以吗? 例如,如果您放弃此要求,则可以更灵活地进行提交(即使应用程序未处于工作状态,也可以将它们用作逻辑块)。但是,如果您实施它,则可以稍后灵活选择任何给定的提交...
36 git 

7
频繁的复杂合并冲突是问题的征兆吗?
在我们的团队中,我们使用Git作为源代码控制。我们有几个几乎独立的代码区域,但是有一些重叠。最近,我们一直在讨论使用源代码管理的工作流程和方法。当我使用功能分支工作流进行升级时,出现的一个抱怨是人们经常遇到复杂的合并冲突,而他们无法正确解决。复杂地说,我的意思是“解决方法不明显”。鉴于此,正在更加积极地使用其他工作流程,例如基于“拉底”的工作流程。 作为功​​能分支方法的倡导者,我并没有真正抱怨过。是的,您必须保持本地要素从master或任何地方分支最新,但这是我所看到的唯一真正的问题。我在想,如果您的合并总是很复杂并且可能会产生辅助影响,那么这更多是团队合作问题,而不是Git问题。 我认为正确吗?复杂的合并冲突是好事还是坏事的征兆?

3
使不同主机上的git存储库保持同步
我正在考虑开始一个小项目,我想用git对其进行版本控制。 Bitbucket的免费计划对我来说是一个不错的选择。我想将其用作使用git的主要工具,因为它们具有Web界面,Mac OS客户端等不错的工具。但是,为了更好地保护使用第三方服务可能造成的任何意外损坏,我还想在我的NAS上安装git作为存储库的第二个备份副本。 现在我的问题是,是否可以在两个不同的主机上创建一个存储库,然后使其保持同步?例如,假设我每周更新一次NAS上的存储库,使其与Bitbucket上的存储库匹配。然后,如果Bitbucket发生问题,我仍将在本地NAS存储上拥有完整的存储库以及完整的开发历史记录。 有没有办法将具有完整历史记录的现有存储库导入另一个git-service? 我认为镜像是我所需要的。这条似乎正是我需要的描述。而这一个也是如此。 我相信它将复制具有完整历史记录的完整副本,甚至自动将新版本自动提交到两台主机上的存储库中。 我对吗?
34 git 

12
DVCS是否会阻止持续集成?
假设有一个由十个敏捷开发人员组成的团队。每天他们每个人都从董事会中挑选一项任务,并对它做出一些更改,直到(直到一天结束)他们已经完成了任务。所有开发人员都直接通过主干签入(Google风格,每次提交都是候选版本,使用功能切换等)。 如果他们使用的是像SVN这样的集中式CVS,那么每当其中一个提交时,构建服务器就会针对其他9个开发人员的工作进行集成并测试其更改。构建服务器几乎将全天连续运行。 但是,如果他们使用的是git之类的DCVS,则开发人员可能会等到完成任务后,再将所有本地提交一起推送到中央存储库。直到一天结束,他们的更改才会被整合。 在这种情况下,SVN团队更加频繁地进行集成,并且比git团队更快地发现集成问题。 这是否意味着DVCS比老式的集中式工具更不适合连续团队使用?你们如何解决这个推迟推送的问题?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.