![]() |
1
3
有一个很好的 Subversion manual 免费提供。 |
![]() |
2
17
我要和现在的谷物做对比,说和吉特一起去。这是我做的,而不是学习SVN。读完 git book . 一旦你掌握了它的窍门,就可以很容易地使用它。要在当前目录中启动新的存储库吗?
想用一个简短的提交消息提交所有内容吗?
这真的不是火箭科学,就像有些人相信的那样。 对于一个单独的开发人员来说,这非常简单。您不必为单独的回购费心,回购在您的工作目录中。 编辑: 您还询问了有关Github的信息。他们有非常白痴的入门指南。当您注册一个帐户并添加一个新的存储库时,它们会提供将其与本地repo同步所需的确切命令。这是使用命令行的另一个好理由。 为什么要使用Github?如果你的电脑坏了,云里就有一份拷贝。如果你想和朋友合作,给他们发送一个链接,他们可以直接从Github-V. 编辑2: 4:这不会造成任何问题。 5:我不能代表SVN说话,但从我听到的每一件事来看,因为Git使提交变得非常容易,所以您可以更频繁地提交,这使您对自己的历史有更细致的控制。所以,假设你犯了一个巨大的错误,破坏了一切,一周前你犯了一个错误,你可以查看你的Git日志,找出发生变化的地方并修复它。至于实际频率,我承诺大约每半小时一次(每半小时一次 pomodoro 是的),但是如果发生了很多变化,可能更频繁。 |
![]() |
3
14
是的,还有其他的VC系统可用,但是对于单独的学习者,我完全推荐Subversion+Tortoissesvn。 高温高压 作记号 |
![]() |
4
3
回答您的编辑,第4点和第5点(注意我的投票是支持Git的——我们在这里使用它(多用户Windows环境),它确实非常有效: 4、 如果我决定完全改变我的程序结构呢? 大多数版本控制系统都能处理这个问题。在一天结束的时候,当您提交更改时,您会保存一个版本,说明您的文件在某个特定时间点的外观,这应该是编译代码所需的全部内容。 您的版本控制系统只是一种在某个时间点对文件进行快照的“简单”方法。 5、 从其他问题来看,我该如何承诺? 尽可能频繁地。或者换一种说法,如果你改变了某件事情(或者更重要的是,不小心删除了某件事情或者做了一些非常愚蠢的事情),你会有一种紧握着球的感觉,那就是你刚刚损失了几个小时的相对不相关的工作,而这些工作本来是可以完成的(并且是可以保存的),那么你就没有经常完成。 |
![]() |
5
2
关于源代码管理,您可能想看看这个 "How to use SVN, Branch? Tag? Trunk?" . 关于使用某种源代码管理,对代码和文档进行修订以恢复软件开发总是很好的。可能值得一看Git。 |
![]() |
6
2
对于新问题: 4:重组应用程序不会有问题。他们只看到一些文件被删除,其他文件被添加。 5:随你的喜好。你越经常犯错误,就越容易修复小错误。 |
![]() |
7
2
在唯一的爱好方面,源代码管理为我解决了三个问题。
让我进一步讨论1。除了无法控制的失败案例之外,我可以进行投机开发,如果投机失败,回到稳定的基础是很容易的。 让我在3上扩展一下。我总是有一个相当大的功能列表,我想添加到我正在编写的软件中。我为要添加的功能创建了一个分支,并可以对其进行一段时间的工作。如果以后,我觉得我想在一个不同的特性上工作,我可以回到一个工作的基础上,在另一个特性上工作一段时间。当我对任何/所有的变更感到满意时,将它们合并起来就很容易了。 我在开发中使用了sourcesafe、clearcase、cvs、svn、sccs、rcs和git,对我来说,在业余爱好编程中经常使用版本控制的工具是git。它不仅挡住了我的路,而且使上面提到的任务更加容易。 |
![]() |
8
2
其他的答案都是很到位的。不过,我还提到了源代码管理有两种不同的“样式”:
SVN基本上是一个标准的集中式源代码控制程序,尽管您需要设置它的服务器才能使用它。不太难,但是你可以尝试像这样的分布式系统 Mercurial 多走一步。 |
![]() |
9
1
是否使用源代码管理的决定实际上取决于您的需要。对于单个开发人员类型的环境和小型项目,您可能只是将其用于版本控制;使您可以对代码进行更改,而不必担心丢失已经完成的工作。这听起来像是您所处的位置,所以我不会被卷入源代码管理的各个方面。如果您不关心保留这些版本,并且愿意冒丢失东西的风险,那么源代码管理可能是您不需要的开销。 这里的大多数人都会说颠覆(SVN)是一种方式,他们可能是对的。不一定是因为它是最好的工具,而是因为它是免费的,并且相当容易理解和使用。它也被开源社区广泛接受,这意味着网络上有很多关于它的信息。Tortoissevn甚至主要通过Windows中的上下文(右键单击)菜单工作,因此您可以避免任何其他“编辑器”。 |
![]() |
10
1
你说你在寻找一个“非常简单的启动”,在这种情况下,我会推荐git。安装工具后
初始化当前目录中的存储库。
添加要控制的文件,以及
提交更改。 这个 Github Guides 是大多数平台上开始使用Git的优秀资源,包含许多有用的链接。 |
![]() |
11
1
即使作为一个开发人员,使用某种形式的版本控制也有很多好处。对我来说,最重要的原因是,如果你把源代码弄乱了(例如,如果你做了大量的编辑,你的程序停止工作),你可以恢复到以前的工作版本。所以在第一个问题上,我会说:“当然!”. 例如,如果您在使代码开放源代码方面没有任何问题,那么有许多站点可以免费承载您的项目。 google 和 sourceforge . 否则,您可以在自己的计算机上运行Subversion、CVS等服务器。 对于工作流,大多数版本控制软件(VCS)的工作方式如下:
对于问题4:大多数VCS都支持移动/重命名文件,这也将进入历史记录,因此这不会导致任何混乱。 问题5:尽可能频繁。在工作中,我承诺一旦我做了任何我已经确认有效的改变。在多用户场景中,破坏构建被认为是一个主要的罪过,即提交一个非编译/非工作版本,因为这会导致其他开发人员在更新他们的代码时尖叫停止。如果你是唯一的开发者,我想你可以稍微放松一点。 |
![]() |
12
1
版本控制(工具和实践)是每个严肃的程序员都应该知道的。我建议您学习一些基本的系统,并尽早熟悉这些想法。 版本控制系统有各种不同的风格。你可能会遇到一些术语,如集中、分散、局部等等,这些术语可能会让没有经验的人感到困惑。任何版本控制系统上最优秀的书籍 Subversion book 对于颠覆和 Pro git book 例如,对于Git)将向您介绍版本控制本身(与它们所涉及的实际工具不同)。我也推荐 Wikipedia page 和 this page 简单介绍一下。 完成后,拿起一个系统。有许多选择,但他们的哲学是不同的。SVN、CVS等都集中在一起,并且已经失去了一些新的基础,比如Git和Mercurial。我建议您首先尝试使用Subversion(因为它仍然被广泛使用,而且技能也很有用),然后再使用任何分布式的(我个人最喜欢的是Git)。 学习的最后一步只有实践和经验,而不是读书。祝你好运。:) |
![]() |
13
1
为什么?我自己做了很多工作,在商业上,如果没有源代码控制,我永远也不会启动一个半严肃的项目。多年来,我失去了太多的演示(我做了很多教学)和其他我认为源代码控制安全网至关重要的代码。我还运行多台机器(至少一台笔记本和一台桌面),这意味着我可以从多个位置执行提交和签出。 怎样?对于我的设置,我在运行Windows的Apache上托管了Subversion。这是在Linux上的,但我移动它是出于各种非技术原因。它在一个VMware虚拟机中运行。我不确定,但如果有一个VMware设备可以解决这个问题,我不会感到惊讶-我很确定有一个适用于Apache的VMware设备。这个设置很简单,除了在版本控制中添加一个新项目外,基本上不需要任何管理。我的服务器暴露在外部世界中,所以我可以从任何地方访问它,如果需要,您可以在家庭网络上使用服务器。 就像我说的,我使用颠覆。我也在服务器上安装了Git,但还没有切换到Git,部分原因是我的惰性,部分原因是工具。今天我主要在.NET和Visual Studio中使用Windows,所以我喜欢集成到Visual Studio中的工具,而不是讨厌运行命令行工具,如果集成了这些工具,就更容易了。 至于改变程序结构——在这种情况下版本控制的主要优点是,如果你搞砸了,你可以再回去。您甚至可以通过分支您当前的开发主线来尝试一些东西,并放弃那些不起作用的更改。如果我正在尝试一个主要的重新构造,我可能会对代码库进行分支,重新构造以使一切正常工作,然后将该分支移到“trunk”(用SVN术语)上。你不必那样做,但它给了你一个安全网。 我应该承诺多久?这要看情况!对于代码,可能是在一个工作单元上(可能只是添加一个测试,也可能是添加一个特性),签入的代码应该始终构建。对于文档,频率较低。您也可能有关于这方面的公司策略,以及一些机制,例如搁置(在VST中),您可以在不签入的情况下将代码存储在存储库中。记住,存储库在那里是为了a)保护代码安全b)保存代码的最新副本,c)允许共享代码。为了满足b)和c)的要求,代码应该是可构建的并通过所有测试,所以不要随意签入代码。 希望这有帮助 |
![]() |
14
1
对!对!请从Git开始。 我是一个有尝试新事物/方法到已经稳定的应用程序的习惯的开发人员。在我遇到Git之前,我一直把我当前的稳定项目复制到一个文件夹,一个日期戳,这个文件夹只是为了记住我在哪里,哪个是稳定版本,然后我开始玩弄代码。 但是使用Git,我可以尝试新的代码技巧,我所做的只是从我的主(主稳定应用程序)分支进行尝试,如果我尝试的失败,我只需丢弃分支并快速切换回我的主,它仍然是完整、安全和稳定的。如果我成功了(大多数时候都不是),我就把分支合并到主节点上,然后丢弃分支。多好啊! 在吉特的分支是什么让我头朝后倒。试试看 |
![]() |
15
0
|
![]() |
16
0
我必须加上我对反复无常的投票。不能把焦点都留给吉特。;-) 但不管你最终选择什么, 做 开始使用一个。坦率地说,你使用了所有这些语言/工具,而且从未开始使用 任何 风险投资公司。我,当我了解到它的时候,我就开始了RCS(回到古老的阿米加1000,没有硬盘,只有176KB的软盘)。无法想象 不 使用某种类型的VCS。实际上,我仍然使用rcs,用于不需要任何花哨内容的单个文件。 |