Jun*_*ter 23 git version-control msysgit
我读到Mercurial和Git的所有地方,他们通常会抛出一两行,这意味着Git在Windows上的能力有限(因为有些Shell程序无法移植等等),但我从未遇到过明确提及它们的页面.而且大多数页面都有点旧.
Git在Windows上的功能有哪些限制?是否必须在MinGW上运行Git和Windows上的MSYS有性能限制?
Cal*_*ngh 27
编辑:所以它是2016年,距我写下面的原始答案已经六年了.我已经使用git和mercurial已经好几年了,而且我已经用mac开发了好几年了.我对命令行中的git使用非常熟悉和熟悉,但对于日常工作,我使用Atlassian的SourceTree.这不是广告,只是更新此答案的注释.SourceTree是一个双重抽象:与git/hg相同的ui,以及与Windows/Mac相同的ui.当您必须经常切换平台和项目时,这变得非常有吸引力.
编写了一个在Windows上为Git设置客户端和服务器的指南,我非常清楚人们可以期待什么.此外,我的主存储库(.git文件夹)是大约260MB的源代码,因此对于Windows上的日常Git工作来说,这实际上并不是一个简单的性能测试.
我的总体印象是,对于绝大多数可能遇到的情况,Windows上的Git非常快,其中一个非常大的例外:git gui blame -C -C.默认情况下,git不会责怪文件重命名边界之外的文件,并且-C -C必须传递额外的参数才能使其发生,但事情确实会变慢.现代硬件需要17分钟才能生成一个较大的~20 kloc源文件的完整注释.这种延迟真的可以打破你的注意力.
我只试过一次,而不是有意义的.我真的想要一个原生解决方案.从各方面来看,cygwin上的git运行良好.
Frank Li做了大量的工作,将现在熟悉的用户界面带到了Git世界.TortoiseGit启动非常快,因为大多数UI都可以从TortoiseSVN(以及其他工具,如TortoiseMerge)获得,我已经使用了很多这个界面.一般来说,如果您熟悉TortoiseSVN,它可以让您快速使用Git.开发人员非常痛苦地使用TortoiseSVN世界中的术语并将它们映射到git命令.例如,一个revert确实执行了一个git checkout <file>引擎盖.
一般来说,以这种方式与Git合作是非常无缝的,我必须承认在使用TortoiseGit界面时学习了Git:必须承认这是我的教育的障碍.像TortoiseSVN这样的日志查看器并不适用于分布式vcs工作流程(它使用Git就好像它是SVN一样),你只能在以后找到它,因为问题只有在有很多时才会出现,许多开发分支(gitk工具很多更好地处理这个显示器).而另一个问题是即使在使用TortoiseGit好几个月后,我仍然不知道最基本的git命令.TortoiseGit没有什么特别的错误,当它们发生时,错误会很快得到修复.主要问题似乎是UI中的设计问题(可能不止一个)gitk,git gui开发人员因为更长的开发历史,或者对惯用的git使用有更深入的了解,或类似的东西,已经解决了这个问题.
该MSYS git的开发团队是谁真的应该感谢都懒得做他们所做的所有工作中的人,没有他们的支持,很可能MinGW的混帐分支甚至不会有被合并到主线.
我现在已经开始在Git Bash shell中使用msysgit,作为我几周的唯一git接口.我的印象是,虽然最初的学习似乎更难,但一旦获得知识,其他一切变得更容易. 在我看来,这个引用是在命令行上学习git的更好的参考之一.
作为Windows上的Git用户,以及使用TortoiseGit界面到git的扩展体验,这是我的工作流程的摘要,它涵盖了所需内容的95%以上(全部使用Git Bash,而不是 Windows命令shell( CMD)):
检查修改
git状态
切换分支
git checkout some-feature-branch
取
git fetch
显示日志(将进程与shell &分离gitk,以便shell gitk在允许更多命令之前不等待关闭)
gitk&
提交:要么
简单提交:
git commit -a -m"这是我的提交消息"
复杂,多次连续提交:
git gui
推送到分支:主
git push origin master
合并(例如在获取后)
git merge origin/master
我还没有做过任何冲突解决方案,但是我会在时机成熟的时候解决这个问题(欢迎评论:).
编辑:为了解决冲突,kdiff3是要走的路.设置很简单,从简单的差异到三向合并的一切都可靠而迅速地完成.
Windows上的Git功能齐全,可以像宣传的那样工作,并且不限于Windows.
性能通常非常好,但全面的大责备可能会很慢.
TortoiseGit界面很诱人,但最终还是不满意:你应该尝试在命令行上学习git.我已经做到了,这条路线效率更高.
可疑的通配符支持:(
有问题的.gitignore文件)
发送到底层的特定于操作系统的fnname()方法:看到这个问题和那个(或那个)
git-svn可能不会很快.
资料来源:这个答案.尽管如此,它取得了一些进展.
将PATH要调整的需要,以防止任何冲突的
一些命令是Windows和在bash之间的相同.(find,cp,rm,...).
看到这个答案.
作为cjrh评论,Git for Windows bin默认情况下不会将其目录添加到PATH.
可以进行一些EOL转换(Unix与Windows EOL)
请参阅设置的最终建议git autocrlf.
新改进core.eol和eol属性从Git1.7.2现在还没有在msysgit.
| 归档时间: |
|
| 查看次数: |
7006 次 |
| 最近记录: |