我使用github并在过去成功添加和同步了我的笔记本电脑上的文件.
截至最近,我开始在运行后收到" PuTTY致命错误:已断开连接:没有可用的支持身份验证方法 ":
git pull origin master(或推送)
然而
ssh git@github.com返回正确的响应:错误:您好用户名!您已成功通过身份验证,但GitHub不提供shell访问连接到github.com已关闭.
在github上挖掘后我发现了这个问题:
没有可用的支持的身份验证方法 您应该知道环境变量GIT_SSH,如果ssh不适合您,git使用它来查找ssh-speaking客户端.git install可能正在使用plink.exe(通过GIT_SSH)来执行身份验证.如果是这样,请确保您运行了pageant.exe,并为github创建了为其加载的密钥.这为plink.exe提供了关键; 没有它,将发生上述错误.
不知道plink.exe或peagant.exe是什么..而且ssh git@github.com似乎正确验证的事实让我想知道这里最好的解决方案是什么..我当然不希望过度复杂我的设置如果不是必要.
当我尝试从Windows 7(64位)上的git Bash运行某些命令(例如git push)时,我收到错误:
The program can't start because libiconv2.dll is missing from your computer
Run Code Online (Sandbox Code Playgroud)
我已经详尽地搜索了解决这个问题的方法.
我能找到的最多是谷歌代码网站(问题419)和其他一些博客的问题主题.据我所知,这些帖子中提出的建议都不能解决我的问题.
我试过重新安装.我试过添加$GIT/bin到PATH.
我可以验证dll是否在$GIT/bin目录中...但仍然无法推送到远程.
我在另一个Windows 7机箱上安装了msysgit,我在两种情况下都安装了相同的方式......所以不用说我很困惑.
任何有关这方面的帮助将非常感激.
谢谢,
当我在文件上运行git blame(使用msysgit)时,我总是得到以下类型的打印输出:
00000000 (Not Committed Yet 2011-01-09 11:21:30 +0200 1) package co
00000000 (Not Committed Yet 2011-01-09 11:21:30 +0200 2) {
00000000 (Not Committed Yet 2011-01-09 11:21:30 +0200 3) impor
00000000 (Not Committed Yet 2011-01-09 11:21:30 +0200 4) impor
00000000 (Not Committed Yet 2011-01-09 11:21:30 +0200 5) impor
00000000 (Not Committed Yet 2011-01-09 11:21:30 +0200 6) impor
00000000 (Not Committed Yet 2011-01-09 11:21:30 +0200 7) impor
Run Code Online (Sandbox Code Playgroud)
即它显示所有行都没有提交.
我在许多文件上尝试了这个,它有许多提交 - 总是相同的结果.我也试过使用相对/完整路径,但它似乎没有区别.
当我尝试使用TortoiseGit的责任时,它总是将每一行显示为在第一次提交时最后一次提交:

甚至想,正如我所说的,这些文件的历史实际上有数十次提交.
想法?
编辑 - 更多信息
我喜欢git并且在OS X上经常使用它在家里.在工作中,我们在Windows上使用svn,但是一旦工具完全成熟就想要迁移到git(不仅仅是TortoiseGit,还有类似于VisualSVN提供的非常好的Visual Studio集成).但我离题了......
我最近安装msysgit我的Windows 7机器上,并使用bash所包含的版本时,它的窘况慢.而不仅仅是git操作; clear大约需要五秒钟.AAAAH!
有没有人遇到过类似的问题?
编辑:似乎 msysgit与UAC没有很好的协作,可能只是一个微小的设计疏忽,因为在XP上开发或在禁用UAC的情况下运行Vista或7; 使用Run as administrator我在OS X中看到的闪电速度的结果启动Git Bash (或者在启动Git Bash w/oa网络连接后使用7 - 请参阅@Gauthier答案).
编辑2:啊哈! 看我的回答.
我计划将我的项目迁移到git,我现在想知道哪个是Windows下最好和/或最稳定的选项.
从我收集的内容我基本上有2.5个选项:
注意:IMO Cygwin本身就是一个很大的优势,因为你可以访问几乎所有的*nix命令行工具,就像使用MSYSgit bash一样,你只能访问这些工具的一小部分.
鉴于此,您会建议什么选择?
我注意到core.autocrlf我跑的时候有两个列表git config -l
$ git config -l
core.symlinks=false
core.autocrlf=false
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
pack.packsizelimit=2g
help.format=html
http.sslcainfo=/bin/curl-ca-bundle.crt
sendemail.smtpserver=/bin/msmtp.exe
diff.astextplain.textconv=astextplain
rebase.autosquash=true
user.name=name
user.email=email@example.com
core.autocrlf=true
Run Code Online (Sandbox Code Playgroud)
最后3个(来自user.name)是我C:\users\username\.gitconfig文件中唯一的.所有其他的来自哪里?为什么core.autocrlf列出两次?
这是使用msysgit 1.8.3,我也安装了SourceTree(Windows 7).在SourceTree中,我取消选中"允许SourceTree修改全局Git配置文件"
我有git代理配置为'http.proxy = http:// userId:pwd @ 123 @ipaddress:port'但是在克隆远程项目时,我收到错误
Cloning into git...
error: Couldn't resolve proxy '123@ipaddress' while accessing http://git.kernel.org/pub/scm/git/git.git/info/refs
fatal: HTTP request failed
Run Code Online (Sandbox Code Playgroud)
如何逃避密码中的'@'字符?
请注意:我无法更改密码.
场景
想象一下,我被迫使用一些总是存储在.zip文件中的文件.zip中的一些文件是小文本文件并经常更改,而其他文件更大但幸运的是相当静态(例如图像).
如果我想将这些zip文件放在git存储库中,每个zip都被视为一个blob,所以每当我提交存储库时,就会增加zip文件的大小...即使只有一个小文本文件在里面改变了!
为什么这是现实的
MS Word 2007/2010 .docx和Excel .xlsx文件是ZIP文件...
我想要的是
是否有任何机会告诉git不要将拉链视为文件,而是作为目录并将其内容视为文件?
优点
但是,它说不行吗?
我意识到如果没有额外的元数据,这将导致一些歧义:在git checkoutgit上必须决定是foo.zip/bar.txt在常规目录还是zip文件中创建文件.但是,我认为这可以通过配置选项解决.
两个想法如何完成(如果它还不存在)
minizip或者IO::Compress::Zip在git里面当我尝试从Git Bash shell创建一个符号链接时,它每次都会失败:
$ ln -s /c/Users/bzisad0/Work testlink
ln: creating symbolic link `testlink' to `/c/Users/bzisad0/Work': Permission denied
Run Code Online (Sandbox Code Playgroud)
除了提供错误消息之外,它唯一能做的就是创建一个名为的空目录(在本例中)testlink.
我没有看到ln可执行文件有任何问题.例如,它由我拥有并标记为可执行文件:
$ which ln
/bin/ln
$ ls -hal /bin/ln
-rwxr-xr-x 1 BZISAD0 Administ 71k Sep 5 11:55 /bin/ln
Run Code Online (Sandbox Code Playgroud)
我也拥有当前目录(~,即/c/Users/bzisad0):
$ ls -dhal .
drwxr-xr-x 115 BZISAD0 Administ 40k Sep 5 12:23 .
Run Code Online (Sandbox Code Playgroud)
我有管理权限,我尝试用"以管理员身份运行"打开Git Bash shell,但这没有任何区别.
我尝试打开Windows属性ln.exe并将权限级别设置为"以管理员身份运行此程序",但这没有帮助.
我已经进入Windows中的安全性 - >高级属性,并使自己(而不是管理员组)成为所有者,但这也没有解决任何问题.
我不知所措.我不知道这个错误消息最终是来自lnBash,还是来自Windows,或者我怎么可能缺少权限.我怎样才能深究这一点?