gpt4 book ai didi

git - Windows 上的 Git 有哪些限制?

转载 作者:IT王子 更新时间:2023-10-29 01:12:31 36 4
gpt4 key购买 nike

我在任何地方读到有关 Mercurial 和 Git 的文章,他们通常都会写一两行,这意味着 Git 在 Windows 上的能力有限(因为某些 Shell 脚本无法移植等),但我从未遇到过明确提及它们的页面。而且大多数页面都有些旧。

Windows 上的 Git 在功能方面有哪些限制?并且必须在 Windows 上的 MinGW 和 MSYS 上运行 Git 有性能限制吗?

最佳答案

编辑:所以现在是 2016 年,距我在下面写下原始答案已经过去了六年。我已经大量使用 git 和 mercurial 好几年了,我也在 Mac 上开发了好几年。我已经非常熟悉并习惯在命令行上使用 git,但对于日常工作,我使用来自 Atlassian 的 SourceTree。这不是广告,只是更新此答案的注释。 SourceTree 是双重抽象:git/hg 的 ui 相同,Windows/Mac 的 ui 相同。当您必须经常切换平台和项目时,这变得非常有吸引力。

已写 a guide to setting up both client and server for Git on Windows ,我很清楚人们可以期待什么。此外,我的主要存储库(.git 文件夹)大约有 260MB 的源代码,因此对于 Windows 上的日常 Git 工作来说,这确实不是一项微不足道的性能测试。

我的总体印象是 Windows 上的 Git 对于人们可能遇到的绝大多数情况都非常快,只有一个非常大的异常(exception):git gui blame -C -C .默认情况下,git 不会责怪超出文件重命名边界的文件,以及额外的 -C -C必须传递参数才能实现这一点,但是事情真的会变慢。在现代硬件上需要 17 分钟才能为我们较大的 ~20 kloc 源文件之一生成完整的注释。这种延迟真的会分散你的注意力。

关于cygwin :

我只试过一次,并不是为了任何重要的事情。我真的想要一个本地解决方案。从各方面来看,cygwin 上的 git 运行良好。

关于TortoiseGit

Frank Li 做了大量工作,将现在熟悉的 UI 引入 Git 世界。 TortoiseGit 启动得非常快,因为大部分 UI 都可以从 TortoiseSVN(以及其他工具,如 TortoiseMerge)获得,而且我在这个界面上做了很多工作。一般来说,如果您熟悉 TortoiseSVN,它可以让您非常快速地开始使用 Git。开发人员煞费苦心地使用 TortoiseSVN 世界中的术语并将它们映射到 git 命令。例如,还原实际上执行 git checkout <file>在引擎盖下。

总的来说,以这种方式使用 Git 是非常无缝的,我必须承认我在使用 TortoiseGit 界面时学习了 Git:而且必须承认这对我的教育造成了阻碍。 TortoiseSVN 之类的日志查看器并不真正适用于分布式 vcs 工作流(它工作得足够好,您可以像使用 SVN 一样使用 Git),而且您只能在以后发现这一点,因为只有在有很多问题时才会出现问题,许多开发分支(gitk 工具在处理此显示方面要好得多)。另一个问题是,即使在使用 TortoiseGit 数月之后,我仍然连最基本的 git 命令都不知道。 TortoiseGit 并没有什么真正的问题,而且当它们确实发生时,错误会很快得到修复;主要问题似乎是 UI 中的设计问题(可能不止一个),这是 gitkgit gui由于较长的开发历史,或者对 git 惯用用法的更深入了解,或者类似的东西,开发人员已经制定了。

关于命令行使用:

MSYS git development team真正应该感谢那些甚至费心去做他们所做的所有工作的人,如果没有他们的支持,mingw git 分支可能永远不会与主线 merge 。

我现在已经开始在 Git Bash shell 中使用 msysgit 作为我唯一的 git 界面几个星期了。我的印象是,虽然最初的学习似乎比较困难,但是一旦掌握了知识,其他一切都变得容易了。 This reference在我看来,这是在命令行上学习 git 的真正更好的引用之一。

作为 Windows 上的 Git 用户,并且来自使用 TortoiseGit 接口(interface)到 git 的扩展经验,这是我工作流程的总结,涵盖了 95% 以上的需求(全部在 Git Bash 中,而不是 Windows 命令 shell ( cmd)):

  • 检查修改

    git status

  • 切换分支

    git checkout some-feature-branch

  • 拿来

    git fetch

  • 显示日志(&gitk 进程从 shell 中分离出来,这样 shell 在允许更多命令之前不会等待 gitk 关闭)

    gitk &

  • promise :要么
  • 简单提交:

    git commit -a -m "This is my commit message"

  • 复杂的多次连续提交:

    git gui

  • 推送到分支:master

    git push origin master

  • merge (例如在 Fetch 之后)

    git merge origin/master


  • 我还没有解决任何冲突,但我会在时机成熟时弄清楚(欢迎评论:)。

    编辑:对于冲突解决,kdiff3 是要走的路。设置很简单,从简单的差异到三路 merge ,一切都可以可靠而迅速地工作。

    结论
  • Windows 上的 Git 功能齐全,如宣传的那样工作,并且是 不限于 Windows .
  • 性能一般都很好,但综合大怪可能会很慢。
  • TortoiseGit 界面很诱人,但最终并不令人满意:您应该尝试在命令行上学习 git。我两个都做过,而且这条路线效率更高。
  • 关于git - Windows 上的 Git 有哪些限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3313561/

    36 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com