...或者他们只管理完整的“提交”?(通过完整提交,我的意思是只说给定快照的工作/最终文件。)
我需要学习一些当我涉足应用程序框架(例如 Druapl)时,我会使用 VCS。由于我不是计算机科学毕业生,我对 VC 的想法是有人告诉我更新此页面或修复该错误 :) 随着我的项目变得越来越复杂,我需要跟踪程序更新以及我自己的自定义。由于 Druapl 使用 GIT,如果我只使用一个系统就太好了。
最终,我可能需要测试一个页面的几个不同版本(各种浏览器或其他一些错误或问题),但只有一个版本可以通过并添加到工作项目快照中。
git 中是否有命令或工作流程来管理这种情况?
答案1
Git 会跟踪提交中每个文件的更改。例如,这是一个相当小的差异最近提交到Kate 编辑。事实上,git 通常只在内部存储每个文件的更改,并使用这些更改在工作目录中构建完整的文件。
如果您只需要跟踪小的增量更改,只需提交您想要跟踪的每个小更改。由于 git 不必与服务器通信即可提交,因此它快速而简单。许多编辑器和 IDE 都带有 git 集成,因此它甚至可能只需要您按一下按钮。Git 的索引还允许您仅签入您想要的文件,因此您可以根据需要按文件拆分提交。
Git 强大的分支功能将满足您的其他需求。要创建并切换到一个仅用于工作的新分支,只需运行git checkout -b work
。您可以根据需要多次从该分支或原始master
分支分支分支。由于 git 仅存储增量更改,因此分支既便宜又简单。一旦您准备好了某些东西,就可以将其合并回您的主要工作分支。您甚至可以在一个分支中跟踪小更改,并将其合并到另一个分支中作为一个大提交,这样您就可以在需要时跟踪小更改,而不会在主要工作分支中留下过长的历史记录。
git 的另一个可能对你有用的功能是采摘樱桃。这允许您从一个分支中选择特定的提交并将其合并到另一个分支。因此,如果您在一个分支中完成了一些工作,而这些工作在另一个分支中需要,但不需要全部完成,那么将其带过来很容易。
我强烈建议你花些时间了解 git 的各种功能,这样你就能在需要的时候轻松使用它们。我们在 Stack Overflow 的朋友已经整理了优秀资源列表。
答案2
Git、Mercurial 和我知道的所有其他分布式版本控制系统都在提交级别进行跟踪。您不是提交单个文件,而是提交某个时间点的整个工作副本的状态,并且您可以明确选择何时执行此提交。
如果你使用 Git 跟踪一组不相关的更改,那么简化此过程的一个工作流程是每个更改使用一个分支。你将拥有以下分支:
master
(摘自原点)xtian-master
(你的“主”分支)- 每个功能的附加分支
当 Drupal 更新其master
分支时,您可以提取更改,然后将其合并到您的xtian-master
分支中。这样,您的最终更改将应用于较新版本的 Drupal。
当您想要更改页面时,您可以为该更改创建一个分支,在该分支上进行尽可能多的更改和提交,然后合并xtian-master
或删除该分支(如果您决定放弃更改)。在开发新功能时,您可以拥有多个分支,然后最终将获胜的分支合并到xtian-master
。