【问题标题】:How can/should I use git in my environment?我如何/应该在我的环境中使用 git?
【发布时间】:2011-02-10 01:29:12
【问题描述】:

我正在考虑加入 Git 潮流。我的环境由 1-4 台 Windows 客户端计算机和一个 FreeNAS 服务器组成。

我需要什么才能让 Git 在这种类型的配置中工作?

我需要在服务器上安装任何 Git 软件吗? (例如,在 CVS 中,如果存储库作为 Windows (SMB) 共享访问,我不需要安装任何软件)。

如果我已经安装了 Cygwin,我应该在客户端计算机 (Windows) 上安装什么?是否有一个预编译的 git.exe(就像 cvs.exe)比建议的 130MB MSysGit 占用更少的空间?

我真的必须通过编译 Git 二进制文件才能在我的 Windows 客户端上安装 Git 吗?

我完全不知道从 CVS 范式转移到 Git 范式需要什么。

【问题讨论】:

  • 有一个用于 Git 的 cygwin 包。使用 cygwin 包管理器安装它。

标签: git msysgit


【解决方案1】:

Git 和 svn 或 cvs 不一样,因为它是“完全分布式的”,所以没有真正的 客户端和服务器,只是节点。在您的情况下,您需要让您的“客户端机器”指向 NAS 上的远程存储库,在那里他们可以推送他们的更改。您可以使用包括文件在内的多种方法指向此存储库,如下所述:

http://www.kernel.org/pub/software/scm/git/docs/git-push.html#URLS

在 git 中,您的所有客户端也是节点,因此例如 developer1 可能在他的 repo 中有一个实验分支,developer2 可以从中提取以进行审查。这个分支不需要在“服务器”上。这既令人困惑又强大。

最简单的开始就是遵循客户端/服务器模型。 4 个“客户端”将更改推送到共享文件服务器上的 git 存储库。

有没有预编译好的git.exe(和cvs.exe一样)

是的,看这里, http://oreilly.com/software-engineering/excerpts/version-control-git/installing-git.html

我还建议注册一个免费的 github.com 帐户,在一台机器上安装 git 并玩转其他项目,将它们拉下,将它们推上等......

也许如果你有一个小时的时间可以购买 http://peepcode.com/products/git 截屏视频,以便通过 git 浏览。

【讨论】:

  • 您的回答是真正的救命稻草。谢谢! (我没有足够的积分来投票给你,但我会尽快给你投票)。
【解决方案2】:

在我店里的电脑上,我只是:

  • 解压portable edition of Git for Windows(来自msysgit project);少于 10Mo(不同于 130Mo msysgit 下载,它允许在 Windows 上重新编译 Git:你不需要它来做你想做的事)。
  • 更改<git install dir>/etc/gitconfig 以添加:
  • 使用 <git install dir>/git-cmd.bat<git install dir>/git-bash.bat 打开新的 DOS 窗口或 bash 会话,并在其中设置正确的 PATH(并且仅在其中,这意味着不对 User PATH 外部环境变量进行全局修改那些贝壳)。

【讨论】:

  • @Benjol:对于服务器,您需要添加某种侦听器,除非您使用简单的local protocol 并推送到共享路径。我的服务器是 Solaris 的,我使用 gitolite(这意味着我使用安全的 shell ssh 和 forced commands )。
  • @VonC 也谢谢你。这是一个很好的提示。
  • 建议人们在 Windows 上将core.autocrlf 设置为false 是邪恶的。大多数人应该使用input 而不是false,除非他们真正了解其中的区别并接受使用false 将CRLF 添加到历史记录中的风险。
  • @Arrowmaster:我尊重您的观点,但仍然非常反对任何形式的自动转换。强制 'lf'('input' 设置)并不总是所有数据的解决方案。
  • @VonC 确实,它并不总是适用于所有数据,但 git 中几乎所有 EOL 问题的原因也是因为文件被视为文本文件,在回购。如果两个 Windows 用户具有不同的 autocrlf 设置(false 和 input/true),那么一旦具有 false 的用户提交带有 CRLF 行结尾的内容,就会出现问题。更合适的解决方案是在 .gitattributes 中设置* text=auto,然后微调哪些文件被检测为文本文件,如果需要,哪些文件不包含进一步的 .gitattributes 行(如 UTF16/32 文件)。
猜你喜欢
  • 2011-03-18
  • 2021-07-16
  • 1970-01-01
  • 1970-01-01
  • 2010-11-23
  • 1970-01-01
  • 2021-12-28
  • 1970-01-01
  • 2019-02-01
相关资源
最近更新 更多