我在Windows上试用Git.我到了尝试"git commit"的地步,我收到了这个错误:
终端是愚蠢的,但没有定义VISUAL或EDITOR.请使用-m或-F选项提供消息.
所以我想出了我需要一个名为EDITOR的环境变量.没问题.我把它设置为指向记事本.这几乎奏效了.默认提交消息将在记事本中打开.但记事本不支持裸线馈送.我出去拿了Notepad ++,但是我无法弄清楚如何将Notepad ++设置为%EDITOR%以这样的方式使它与Git一起工作.
我没跟Notepad ++结婚.在这一点上,我不介意我使用什么编辑器.我只想在编辑器而不是命令行(with -m)中键入提交消息.
那些在Windows上使用Git的人:你用什么工具来编辑你的提交信息,你需要做些什么来使它工作?
过去两天我一直在与Git Bash合作.我现在知道的基本操作,例如commit,push,pull,fetch,和merge.但我仍然不知道Git Bash 本身究竟是什么!
我搜索了很多关于Git Bash的内容,但我看过的所有网站都关注其命令的功能.我的问题仍然没有找到一个好的答案.现在,我想,我是在正确的地方得到这个答案!
我在某些地方读过git(或只是msysgit?)和字符编码有问题- 我相信这只是文件名中的一个问题.
我想要的是一些'权威'(或至少权威)的信息:
我希望这个问题不是太模糊,我认为将所有这些信息放在一个地方以便能够指出人们是很好的...
在尝试为开发人员标准化平台时,我的一个需求是提交,.git/config以便每个人都有相同的CRLF配置,而不会忘记手动设置它.
我该如何设置?
我对所有这些消极情绪感到担忧autocrlf.如果不起作用,为什么不删除此功能?要么这个功能的制作者被误解,要么他们用它做了一个失败的实验,它应该被删除,以阻止更多的人浪费他们的时间(阅读模糊的手册页,提问,回答这些问题的人等).
安装msysgit时,安装程序会显示与系统路径相关的3个选项:
永远不要改变Windows环境.使用此选项,您必须使用"bash"shell来使用git.
将git\bin目录添加到PATH环境变量,但不覆盖一些内置的Windows工具.stackoverflow-ian Gabe Moothart 在评论中告诉我,这个选项会让一些git操作失败!这些操作是什么?我应该担心吗?
与2相同但覆盖一些默认系统工具.这些工具是什么?窗户的哪些部分依赖于它们?这会伤到实践吗?
我想到了另一个问题,与系统PATH无关.
如果我的项目目录中有符号链接和硬链接怎么办?git知道如何处理这些吗?或者,它是否会遭受无限递归,如果说,目录结构是这样的,某些文件夹实际上是其父亲之一的符号链接?
我对Git比较陌生,但我发现在家工作很容易,我想在我们的项目存储在Svn存储库中的工作中使用它.不幸的是,存储库略微不标准,我无法克隆它们.当然,它们都有trunk,branches /和tags /,但是在命中实际项目目录之前,branch /和tags /都有子目录:
trunk/
branches/maintenance/release1
branches/maintenance/release2
...
branches/development/feature1
branches/development/feature2
...
tags/build/build1
tags/build/build2
...
tags/release/release1
tags/release/release2
Run Code Online (Sandbox Code Playgroud)
克隆后:
$ git svn clone -s --prefix=svn/ https://mydomain.com/svnproject
$ git branch -r
development
development@1340
maintenance
maintenance@1340
tags/build
tags/build@1340
tags/release
tags/release@1340
trunk
trunk@1340
Run Code Online (Sandbox Code Playgroud)
我没有得到任何实际的项目分支或标签.我实际上需要能够在主干,一个维护分支和一个开发分支上工作.我已经尝试过这种方法,除了修改配置的几个黑客,但没有什么对我有用.
有什么方法可以将我的非标准Svn项目的关键组件放到本地git存储库中,以便我可以轻松地在它们之间移动?
非常感谢.
更新:我应该补充一点,我不能批量切换到Git(尚).还有其他团队成员参与和国际存在.转型的后勤工作比我更愿意承担,直到我对Git更加满意; 正如我所提到的,我还是很新的.我几乎没有触及其功能的表面.
快速搜索给了我tawbaware wc,但它不接受stdout作为输入流,这意味着我不能在DOS会话中使用管道.
注意:
我无法安装cygwin或使用powershell(这将允许' |foreach-object {(get-content $_).count}')
打开文件(通过键入Ctrl-x f,AKA Find File)或通过f在Dired模式下键入该文件),在具有.git子目录的工作目录中非常缓慢.
即使是最简单的文件(50行(主要是注释)也可能需要8秒才能打开.
同一个文件,在不受Git管理的不同目录中,立即打开.
为什么会发生这种情况?如何在不禁用vc-mode的情况下解决此问题?(因为我使用Emacs的主要原因之一是它M-x ediff-revision)
更新1:感谢@ sanityinc的回答,我运行了ELP Profiling,这是我收到的(对于一个非常小的文件,69行,其中59行是简单注释):
Function Name Call Count Elapsed Time Average Time
------------- ---------- ------------ ------------
vc-call-backend 11 23.023 2.093
vc-find-file-hook 1 8.757 8.757
vc-mode-line 1 7.812 7.812
vc-default-mode-line-string 1 7.345 7.345
vc-state-refresh 1 6.921 6.921
vc-state 1 6.921 6.921
vc-default-state-heuristic 1 6.921 6.921
vc-registered 1 0.945 0.945
vc-backend 1 0.945 0.945
vc-git-registered 1 0.912 …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用mailmap.filegit 的配置选项.然而,路径不是shell扩展,这意味着我不能写$HOME/.mailmap或~/.mailmap.这是很烦人的,如果你喜欢的东西同步您的点文件想家和使用适用于Windows,Mac OS X和Linux一样的.gitconfig.
我找不到git的任何bugtracker,我也不想用这样的东西垃圾邮件git maillist.我该如何报告此错误/轻微烦恼?
我最近开始在个人项目上进入Git,我可以看到DVCS如何让我们在工作中受益(这是一家大型企业软件公司,目前正在运行Perforce).我的团队中的功能工作主要包括开发人员创建自己的分支; 有时这些是由小型开发团队共享的.我认为在这种情况下使用DVCS会更有效率.
然而,在更一般的情况下,我有兴趣听到在工作中使用DVCS的人,大中型团队.