问题标签 [dvcs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - 在 Git 中撤消对一个文件的工作副本修改?
在最后一次提交之后,我修改了工作副本中的一堆文件,但我想撤消对其中一个文件的更改,因为将其重置为与最近提交相同的状态。
但是,我只想单独撤消该文件的工作副本更改,没有其他内容。
我怎么做?
git - 什么目录结构对 DVCS(如 git)有意义?
我习惯的:
- 服务器上的档案(纽约州、印第安纳州、北卡罗来纳州)
- 在我的开发机器上:
- 一个名为 ~/work 的目录
- 名为 ~/work/NY/devproject、~/work/NC/project 等的子目录
- 不常见的是,名为 ~/work/NY/release/1.3/project、~/work/NY/test/1.3b/project 等的子目录
- 有时名为 ~/proxy/NY、~/proxy/NC 等的目录包含存档的一次性本地缓存,以减少读取的网络流量。这些目录可以随时删除。
- 删除 ~/work/... 并从档案中重新填充它的临时构建
但是对于 DVCS,这没有意义
- 档案在我的开发机器上,但出于备份原因,近克隆在远程机器上。
- 进行临时构建意味着删除并重新提取整个存档,这似乎代价高昂。
- 看起来我有一个名为 ~/git/git.git/git 的目录,其中包含很多 git。
人们是否在 ~/git 中进行所有开发?如果您需要使用 dev、test、release 和 one-off-for-big-client 版本,它们是在 ~/git 下,还是可以在它们自己的树中的其他地方?第三方组件去哪儿了?这对 SO 来说太大了(我需要看书吗),还是可以用 ASCII 树图来回答?
git - 为什么企业要使用分布式版本控制?
似乎很多人阅读了分布式版本控制并隐含地理解为什么它对开源开发是一件好事,因为许多分布式开发人员都独立地根据自己的选择而不是管理层的要求行事。但是从这种印象中,很多人形成了 DVCS仅在开源环境中有用的想法。他们看不到这将如何帮助发布专有产品并且不使其版本控制系统可从外部访问的组织,或者它将如何帮助单个开发人员。
如果企业选择使用分布式版本控制(如 git、darcs 或 Mercurial)而不是集中式版本控制(如 CVS 或 Subversion),企业可以看到哪些好处?
svn - 什么 VCS 允许我同时向多个挂起的提交添加更改?
我的工作流程通常涉及我对文件进行多项更改,每一项更改都属于它自己的跨项目更改的概念单元(= 提交)。
我想做的是将某些差异(整个文件或仅文件的某些行)添加到待处理的提交(可能必须命名)并让多个待处理的提交“活动”同时。
然后,当所有文件中与特定挂起提交相关的所有更改都完成时,我可以提交命名的提交!
关于哪个 VCS 会是一个很好的候选人的任何想法?
git - 如何阻止 .gitignore 出现在未跟踪文件列表中?
我刚刚git init
在我的新项目的根上做了一个。
然后我创建了一个.gitignore
文件。
现在,当我键入时git status
,.gitignore文件出现在未跟踪文件列表中。这是为什么?
git - 大型团队如何使用 DVCS?
我最近开始在一个个人项目上接触 Git,并且我可以看到 DVCS 如何使我们在工作中受益(这是一家大型企业软件公司,目前正在运行 Perforce)。例如,我团队中的功能工作主要由开发人员创建自己的分支组成;有时这些是在小型开发团队之间共享的。我认为在这种情况下使用 DVCS 会更有效。
不过,在更一般的情况下,我很想听听在工作中使用 DVCS 的人的意见,在大中型团队中。
- 你如何处理 N 路合并?这甚至是一种常见的情况吗?Mercurial 仅通过执行 (N-1) 2 路合并来支持 N 路合并(并且读到这是其他 DVCS 中的首选解决方案),这对于即使是相对较小的 N 来说也是一个非常费力的过程。
- 您使用单一的中央权威存储库,还是真正的 P2P?
- 开发人员是否经常相互推拉代码,或者一切都通过中央存储库进行?
git - DVCS 如何帮助科学编程?
我正在做一些初步工作,以调查 DVCS(如 Git、Hg、Bazar 之类)如何在科学编程过程中提供帮助,尤其是对研究生而言。我认为我在这方面处于非常有利的位置,因为我已经编程了好几年,目前正在开始一个自然科学的硕士课程。目标是在一两个月内对此进行简短的介绍。
在我看来,除了源代码控制的明显优势外,DVCS 目前还为研究生的日常生活提供了以下改进:
分枝:
这是最大的。从观察 DVCS 实践可以清楚地看出,廉价分支主要鼓励新功能的实验。科学编程就是实验。可以创建不同的分支来调整参数或算法。这一点尤其重要,因为大多数科学代码在他们的一生中都没有看到过一次重构(大多数研究生甚至不知道它是什么),所以去不同分支的能力会给典型的疯狂带来一些方法。快速提交也可能意味着使用提交评论作为实验室笔记本的替代品。计算结果可以标记为特定的提交哈希码,以进行可重复的研究。
推送到服务器:
由于现在大多数科学代码都在某种集群上运行,因此 DVCS 可以用作某种更高级的 Rsync,许多人已经在使用它来将“生产”代码推送到 HPC 集群。这与分支相结合,无需离开即可轻松运行多个版本的代码
论文合作:
需要我多说?拥有多个作者的论文的运行方式与小型开源项目完全一样。当作者都用 LaTex 写作时,论文上的协作应该是自然而然的,如果写作是用 Word 之类的东西完成的,则会带来额外的复杂性。这是提交评论可能发挥更大作用的地方。
我的问题是,您认为 DVCS 可以为科学程序员做出什么贡献?我在社区中看到很多关于转向源代码控制的讨论,但大多数人仍在研究 Subversion。从我粗略的笔记来看,听起来 DVCS 应该是新研究生的完美工作流程范例。我的想法有问题吗?或者科学编码只是落后太多,甚至没有听说过DVCS 工具?
有关的:
mercurial - 如何解决 Mercurial (v1.0.2) 中的合并冲突?
我有一个合并冲突,使用 Mercurial 1.0.2:
我不知道如何解决这个问题。谷歌搜索结果指示使用:
但由于某种原因,我的 Mercurial (v1.0.2) 没有解析命令:
我该如何解决这个冲突?
svn - 在本地使用 Mercurial,仅与 Subversion 服务器一起使用
我们在我的工作中使用 Subversion 服务器进行源代码控制。我在想,与其跟上我自己的分支,不如在我的工作站上运行 Mercurial,在本地提交,然后每当我完成我正在处理的任何功能时提交到 Subversion 主干。
根据我对 DVCS 的理解,这在理论上是可能的。任何人都可以提供有关这种特定类型集成的任何教程的参考,或者指出任何可以使这种过程尽可能无缝的工具吗?