Questions tagged «git»

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

7
我的办公室希望无限分支机构合并为政策;我们还有什么其他选择?
我的办公室正在尝试弄清楚我们如何处理分支拆分和合并,但是我们遇到了一个大问题。 我们的问题是长期的分支机构-在这种情况下,您需要几个人在与分支机构分离的分支机构中工作,我们会发展几个月,而当我们达到一个里程碑时,我们就会将两者同步。 现在,恕我直言,处理此问题的自然方法是将侧枝压缩为单个提交。master不断进步;应当-我们并没有追溯数月的并行开发master历史。而且,如果有人需要更好的分辨率来解决分支机构的历史,那么当然,它仍然存在-它不在master,而是在分支机构中。 问题出在这里:我只使用命令行工作,而我团队的其他成员则使用GUIS。而且我发现GU​​IS没有合理的选项来显示其他分支的历史记录。因此,如果您达成一个壁球承诺,说“此开发已从分支被压缩XYZ”,那么查看其中的内容将是巨大的痛苦XYZ。 在SourceTree上,据我所知,这非常令人头疼:如果您正在上master,并且想要查看的历史记录master+devFeature,则需要签master+devFeature出(触摸每个不同的文件),否则滚动浏览一个日志,该日志并行显示您存储库的所有分支,直到找到正确的位置。祝您好运。 我的队友很正确地不想拥有如此难以接近的发展历史。因此,他们希望合并这些大型的,长期的开发分支,并始终使用合并提交。他们不需要任何无法从master分支立即访问的历史记录。 我讨厌那个主意;这意味着平行发展历史的无尽,不可逾越的纠结。但是我没有看到我们有什么选择。而且我很困惑。这似乎阻碍了我对良好分支机构管理所了解的大多数知识,如果找不到解决方案,这将使我不断感到沮丧。 除了不断地将分支机构与合并提交合并到主分支之外,我们这里还有其他选择吗?还是有一个原因导致不断使用merge-commits并不像我担心的那样糟糕?

10
我的同事在没有测试的情况下进行提交和推送
当我的同事认为不需要在PC上进行测试时,他进行更改,提交然后进行推送。然后,他在生产服务器上进行测试,并意识到自己犯了一个错误。它每周发生一次。现在我看到他进行了3次提交,并在5分钟内将其推送到生产服务器。 我几次告诉他,这不是做好工作的方式。我不想再对他无礼,他在公司中的地位与我相同,他在这里的工作比我还要多。 我希望以某种方式惩罚这种行为,或使其尽可能不愉快。 在我开始之前,该公司使用诸如FTP之类的老式方法进行部署,并且没有版本控制。 我强迫他们/我们使用Git,Bitbucket,Dploy.io和HipChat。部署不是自动的,必须有人登录dply.io并按deploy按钮。 现在,如何强制他们不要在生产服务器上进行测试?像HipChat bot这样的东西可以感觉到同一行上有重复的编辑,并向程序员发送通知。

14
没有SCM的情况下如何保持代码质量?
我在政府机构工作。这里使用的技术和开发软件的方法已经过时了。 它们具有大量的存储空间,但没有合适的空间来保留和维护用于自动化此处大部分工作的应用程序。 该机构不允许我使用SCM软件(例如GIT或SVN)。 保持代码质量并稍后能够在应用程序中添加新功能的最佳方法是什么? 如何记起对代码所做的更改而又不破坏代码? 编辑:我忘了提及,它们为每台计算机都有网络驱动器,并且这些网络驱动器会以某种方式定期进行备份或保存备份。但是,如果我不创建自己的计划以保存工作并能够在不破坏现有代码的情况下添加新功能,那么与SCM解决方案相比就没有太大的优势。 编辑:由于许多人建议使用便携式Git,所以我必须添加更多信息。我尝试安装Visual SVN服务器,但失败了,因为我没有安装管理员权限。我也尝试下载常规的Git Shell,但是防火墙或网络设置不允许我访问Git下载页面。我什至尝试过,将便携式Git发送到我的Gmail电子邮件中。Google检测到了软件包中的exe文件,也不允许我在工作计算机上下载可移植的Git版本。我还要提到的另一件事是,应用于机构内部计算机的网络策略不允许使用USB存储设备。您可以使用USB端口为智能手机充电或为小扬声器等小工具供电。也有人说过,有些计算机甚至不允许上网。
110 git  code-quality  svn  scm 

1
在Git中用密码对提交和标签进行签名的优缺点是什么?
因此,有人对我的工作进行了审查,他告诉我,我应该始终对自己的提交和标签进行加密签名。当被问到为什么时,他不知道向我解释它,并说“这是一件好事”。 为了避免出现明显的黑猩猩情形,我为什么要这么做呢?真的有这么多明显的优势而没有劣势吗? 有什么实际原因会使我想要签署我所做的每个提交和标记?
109 git  cryptography 

10
为什么在2010-01年度Debian popcon图上Git提交者的数量突然增加?
几乎所有的文章我读过1比较Git和水银好像水银具有较好的命令行UX每个命令仅限于只有一个想法(不像说git checkout)。 但是在某个时候,Git突然变得超级流行,并且Debian popcon图上的Git提交者数量激增(见下图)。 资料来源:Debian 2010-01年发生的事情突然发生了变化。看起来GitHub早于2008年成立。
86 git  history  mercurial 


11
个人(一个人)项目的git。过度杀伤力?
我知道并使用两个版本控制系统:Subversion和git。到目前为止,Subversion被用于我是唯一开发人员的个人项目,而git被用于开源项目和我相信其他人也可以在该项目上工作的项目。这主要是因为git惊人的分叉和合并功能,每个人都可以在自己的分支上工作。非常便利。 现在,我将Subversion用于个人项目,因为我认为git在这里毫无意义。这似乎有点过大。如果我是唯一的开发人员,则将其集中(通常在我的家庭服务器上)对我来说是可以的;我还是要定期备份。我不需要建立自己的分支的能力,主要分支是我的分支。是的,SVN对分支有简单的支持,但是我认为对它的更强大的支持是没有意义的。合并可能会很痛苦,或者至少从我的小经验来看。 我是否有充分的理由在个人项目上使用git?

6
“开发”分支的趋势逐渐消失
我注意到最近在GitHub上一些受欢迎的项目中发现了一些东西,没有develop分支。实际上,GitHub Flow指南也没有提及。根据我的理解,master应该始终保持完全稳定并反映生产。如果开发人员正在研究功能分支,然后master在完成后将其合并到一起,则意味着在一段时间内功能/修复将被合并到其中master,而master分支实际上比生产版本要新。 让团队从中创建功能/修复分支develop,并合并回该分支,然后在下一个版本完全准备发布时,develop将其合并master并创建标签,是否更有意义?想象一下,如果人们直接进入master,并且在生产中报告了一个错误,该错误由于master分支代码库已发生重大变化而变得难以修复。然后,开发人员只需告诉用户要等到下一个版本才能看到问题已解决。 编辑:此问题不同于“分支或不分支”。它专门解决了人们不再使用开发分支的问题以及造成这种情况的原因,因为长期以来,人们一直认为这是最佳实践。
82 git  github 



8
使用分支维护同一软件的不同版本是否是一个好习惯?
我们的产品有几个不同的版本。区别是微小的:这里和那里的字符串不同,一个字符串中几乎没有其他逻辑,另一个字符串中几乎没有逻辑差异。开发软件时,大多数更改都需要添加到每个版本中。但是,有一些不需要,有一些需要有所不同。如果我有release-editionA和release-editionB(..etc)分支,是否可以有效使用分支?有陷阱吗?好的做法? 更新:感谢大家的见解,在这里有很多好的答案。普遍的共识似乎是为此目的使用分支是一个坏主意。对于任何想知道的人,我对该问题的最终解决方案是将字符串外部化为配置,并将不同的逻辑外部化为插件或脚本。
72 git  branching 

4
为什么git pull默认执行合并而不是变基?
请考虑以下情况: 您有一个git存储库的克隆 您有一些本地提交(尚未推送到任何地方的提交) 远程存储库中有尚未提交的新提交 所以像这样: 如果git pull使用默认设置执行,则会得到以下内容: 这是因为git执行了合并。 不过,还有另一种选择。您可以告诉pull做一个rebase: git pull --rebase 然后您会得到: 在我看来,经过重新设计的版本具有许多优势,主要集中在保持代码和历史记录的整洁方面,因此我对git默认情况下进行合并感到震惊。是的,您本地提交的哈希值将被更改,但这似乎为您获得较简单的历史记录付出了很小的代价。 但是,我绝不建议这某种程度上是错误的或错误的默认值。我只是在想为什么可能首选默认合并的原因而已。我们是否对为什么选择它有任何见识?有没有使其更适合用作默认设置的好处? 这个问题的主要动机是,我的公司正在尝试建立一些关于如何组织和管理存储库的基线标准(希望更像是准则),以使开发人员更容易地访问以前从未使用过的存储库。我有兴趣提出一个案例,我们通常应该在这种情况下进行基准调整(并可能建议开发人员将其全局配置默认设置为进行基准调整),但是如果我反对这样做,我肯定会问为什么要进行基准调整?如果太好了,则使用默认值。所以我想知道我是否缺少某些东西。 有人提出这个问题是重复的,为什么这么多的网站更喜欢“ git rebase”而不是“ git merge”?; 但是,这个问题与这个问题有些相反。它讨论了在合并基础上进行重组的优点,而该问题询问了在合并基础上进行合并的好处。那里的答案反映了这一点,着重于合并问题和资产重组的好处。
71 git 


17
对于无法学习Git的开发人员,我该怎么办?[关闭]
语境 我的由8名工程师组成的团队目前正在过渡到Git(从Subversion进行),这是我们接下来的工作。我们有一些“经验更丰富”的工程师,他们发现很难拿起Git。尽管提供了用户手册,培训活动和白板会议,但我仍然被问到同样的琐碎问题。我们有两名初级顾问,他们在几天之内就完成了所有工作,这确实为这个问题锦上添花。这不是仅限于Git的模式,因此已经可见。 题 对于那些不会/不会学习的工程师,我尤其不满意-特别是拥有我们这里资深资历的员工。但是,我确实希望团队成功并建立出色的产品。我们正在使用集中化的Git Flow模型,我觉得所有新术语都使他们感到困惑。 我有什么办法可以帮助这些员工学习Git? Sourcetree是整个团队都在使用的客户端。
68 git  gitflow 

9
Git应该用于文档和项目管理吗?代码应该放在单独的存储库中吗?
我正在为一个小组项目启动一个Git存储库。将文档与代码存储在同一Git存储库中是否有意义-似乎这与git修订流程的本质冲突。 这是我的问题的摘要: 如果将代码和文档都检入同一个存储库,Git修订样式会不会引起混淆?有经验吗? Git非常适合文档版本控制吗? 我不是在问总体上是否应该将修订控制系统用于文档编制,而是应该使用。 感谢您到目前为止的反馈!

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.