2

我是一个 Git 初学者。我正在阅读并尝试这个 Git 教程。而且我还在这里阅读了 Git 分支模型和关于 SO 的这个问题

但是我仍然对如何在下面的案例中正确使用 Git 感到困惑:

  1. 我有一个项目MyProject01PC01说,我将在 PC上进行处理
  2. PC02说,另一位坐在另一台 PC 上的开发人员将克隆该项目MyProject01(git clone、git pull 等),然后继续开发它。
  3. 然后,这两个将同步(可能 git push到 PC01,但我不确定)。例如,我正在file.prgPC1 上进行编写function 1,而另一位开发人员正在file.prgPC2 上编写相同的文件以编写function 2. 这些将被合并以获得最终结果-file.prg完成。function 1function 2

我没有使用 Git 作为完整的版本控制,即版本将由我自己控制,例如MyProject01,MyProject02等。Git 将对git init每个单独的目录使用 ( )。我只想将 Git 用作我的 Visual FoxPro 桌面应用程序开发的多开发人员环境。

根据我的情况,我是否需要按照教程中的repo01描述创建一个克隆的裸存储库;会是?repo01MyProject01

我认为我不适合上面描述的分支模型。请指导我正确的方式。
我正在使用适用于 Windows 的 Git 安装程序

[编辑]
我的主要目标是使用 Git 作为源代码控制,类似于:

4

4 回答 4

4

我知道这是一个 10 个月的问题,但无论如何这肯定会有用。

从 2014 年 1 月起,scctext(x).prg 有了一个新的替代品,称为 FoxBin2Prg,它可以将 VFP 9 二进制文件转换为文本(prg 样式的),并且可以从这些文本中重新生成二进制文件。可用于区分和合并代码,并且可以修改生成的文本,并将更改反映在重新生成的二进制文件上。

它托管在 VFPx 项目上,网址为: https ://github.com/fdbozzo/foxbin2prg

实际上,我在一个 10 人的团队中使用它与 PlasticSCM 集成,而不需要阻止文件,即使在相同的表单和类上也使用并发开发。

此致!

于 2014-06-16T21:51:37.800 回答
2

我没有使用 Git 作为完整的版本控制,即版本将由我自己控制,例如 MyProject01、MyProject02 等。Git 将为每个单独的目录使用 (git init)

如果您只是要丢弃旧历史,那为什么还要打扰 git 呢?

如果您不想要历史,那么 diff 和 patch 也会为您服务。在 git 中,除了在单个存储库中有多个分支之外,您还可以通过克隆存储库来创建多个工作副本。拥有多个分支允许您保留以前版本的历史记录,同时还允许您返回到以前的版本并进行修改;拥有多个工作副本允许您同时运行多个版本的程序或存储未签入但特定于版本的文件(例如 sqlite 数据库文件)。每次创建新版本时都没有理由重置修订历史记录。

(可能是 git push 到 PC01,但我不确定)

是的,您可以这样做,因为在 DVCS 中,您可以从任何存储库推送或拉取到任何存储库(这是分布式 VCS 与集中式 VCS 的区别,另一个主要区别是在 DVCS 中,工作副本始终也是一个完整的存储库历史,而不仅仅是特定修订的快照)。话虽如此,建立一个裸存储库仍然是使代码共享更容易的好主意。如果 PC02 需要推送但 PC01 不在线,则 PC02 必须等到 PC01 在线才能推送,始终在线的服务器上的裸存储库不会有这个问题。

于 2013-08-14T07:24:44.713 回答
2

检查https://github.com/sait/vfpscm

PRG 文件只是纯文本,您可以透明地使用 GIT 或 Mercurial。

您对 Visual Forms (scx & sct) 和 Visual Classes (vcx & vct) 有疑问,因为这些文件是带有关联备忘录文件的 DBF 表;当您修改表单时,它会更改整个文件。

GIT 可以完美地处理二进制文件,但您不会看到代码中的差异,而这正是 SCM 的用途。

我们创建了这个程序: https ://github.com/sait/vfpscm :

  1. 将您的表单和类转换为 XML,以便您可以将它们推送到存储库中,并且当您修改表单时,只需更改 XML 文件中的几行。
  2. 将 XML 文件重新转换为表单和类,以接收更改。

所以使用常规GIT的过程改成这样:

  1. 编辑文件 PRG
  2. 编辑视觉类和表单
  3. 测试
  4. 修复错误或功能准备就绪后:
  5. 将类和表单转换为 XML(运行 VfpScm)
  6. 将文件 PRG 和 XML 添加到 Git (git add)
  7. 提交文件(git commit -m "messages")
  8. 将更改推送到存储库(git push -u origin master)

您的团队需要提取这些更改并将它们添加到他们的本地副本中:

  1. 拉取更改(git pull origin master)
  2. PRG 和 XML 将被 Git 覆盖
  3. 重建已更改的表单和类(运行 VfpScm)

GIT 配置为使用 .gitignore 忽略 SCX、SCT、VCX 和 VCT 文件,并且存储库仅包含 PRG 和 XMLs 文件

自 5 年以来,我们一直在使用 VFPSCM.exe 工具从事具有 300 个表单和 20 个类的大型项目,并且我们从未丢失任何代码,重要的是我们已准备好 SCM,仅可视化所做的更改和历史提交,在我们的更改日志中转换。

于 2015-02-16T14:13:04.560 回答
0

您可以将 Git 用于多个项目。为 project1 和 project2 创建两个文件夹,并将它们彼此分开。

尝试在开始时使用 SmartGit。

Git 不是传统的源代码控制系统。它是分布式源代码控制系统。我仍然建议您从一开始就使用 GitUI。

是的,您应该有一个裸存储库。

于 2013-08-14T06:58:15.963 回答