当我尝试使用"Git Sync"然后"拉"时我收到错误:
无法加载此密钥(无法打开文件)
然后它尝试继续拉,我得到这个错误:
已断开连接:没有可用的支持身份验证方法(服务器已发送:公钥)
这种情况发生在我升级到1.7.8.0之后.之前一切都运转得很好.我可以成功地使用gitbash,所以我知道我可以连接.
我不确定发生了什么变化,或者我能做些什么来解决它.请帮忙!
其他步骤
我去了GIT文件夹并使用gitbash来检查git remote -v并收到:
.puttykeyfile
origin git@github.com: {name}/{repository} .git(fetch)
origin git@github.com: {name} /{repository}.git(推)
我认为这是正确的.
我检查了tortoisegit中的putty键设置.我有两个条目:
当我在PuTTYGen中加载密钥时,它具有ssh-rsa 1024 ...密钥指纹.
pageant.exe正在运行,但现在不是,但它仍然无法正常工作
当它以前工作时,我在与我的密钥相同的文件夹中的git文件夹.现在我有3个,但是没有一个工作,如果我创建一个带有单个存储库和密钥的新git文件夹,它似乎不起作用.我不知道它是否会影响结果,但我想分享一下以防万一.
问题是,当我拉动并推送到远程存储库时,它会以我的名义生成额外的提交.提交说
合并ssh://的分支'master'
我发现答案说我应该在git bash中使用命令git pull --rebase来避免这种提交.
但我通常使用TortoiseGit.那么我怎么能用TortoiseGit正确地做到这一点?
我喜欢TortoiseGit和SourceTree有自己的优势,并希望在同一台计算机上同时使用它们.
我不确定这样做是否会引起冲突?
如果是这样,我怎么能避免冲突或者没有办法像这样使用它们?
谢谢.
大多数的Git教程使用命令行这是很好的,但我在寻找资源的具体表示工作流程中TortoiseGit(注意强调工作流程,而不仅仅是安装和基本检出/提交).
任何链接/建议?
我有一种感觉,这将是一个明显的答案,但我似乎无法解决这个问题.
似乎发生的事情是我提交/推送一些更改到服务器,我的副本上的一切似乎都很好.
然后另一个开发人员从同一个分支机构(从据我知道的那样看到我的更改)从服务器中撤出,进行一些修改,将它们提交到自己的本地副本然后最终将其推回到服务器.
在执行此操作的过程中,我的更改会丢失,因为它们的推送(326c8fd0 ...)会导致合并大量删除/添加行,将存储库重置为更旧的版本.即使使用存储库的新副本,现在已经发生了几次.
下面突出显示的行(8def6e9 ..)是我提交的,下面的提交应该在同一个分支上,假设其他开发人员撤消了更改.合并发生在326c8fd0,最终错误地重置存储库,丢失以前的更改.

我错过了一个非常明显的原因吗?我们都在使用TortoiseGit.
很抱歉可能含糊不清的解释.
试图从原点获取:
git remote update
Run Code Online (Sandbox Code Playgroud)
得到错误
Error: Cannot Spawn C:\Path To\TortoiseGit\Bin: No such file or directory
fatal: unable to fork
Error: Could not fetch origin
Run Code Online (Sandbox Code Playgroud)
为什么会这样?还有修复吗?
这是我第一次构建git服务器.当我使用TortoiseGit-1.8.1.0-32bit来处理操作时,一切都很好!
但是如果我使用git clone命令或git bash,那么git clone的处理速度是如此之慢.我附上了两张图片,显示了git clone下面的相对传输速度.
有人可以给我一些建议吗?


我在具有受限权限的虚拟机上工作.我可以在安装过程中安装任何不需要管理员权限的程序.但安装TortoiseGit需要权限,因为它与资源管理器集成.是否可以在没有管理员权限的情况下安装TortoiseGit?可能没有资源管理器集成.
我的系统是Windows 7 x64,TortoiseGit版本是1.8.3.0
我们想要撤消最后 2 次都推送到原始主控的提交。在 tortoise git 中,我们可以查看历史记录,然后单击上次提交后的第 3 个,然后选择“将 master 重置为此”,我们猜测这意味着恢复到此版本。
但是,当您选择此选项时,您必须从以下三个选项之一中进行选择:
不幸的是,我们不知道我们应该选择这 3 个选项中的哪一个 - 我们只想撤消最后两次提交并及时返回。
下一个问题是此操作是在远程源、您的存储库、您的工作目录还是这三者的组合上发生?例如,是否必须在还原后进行提交和推送,或者它是否为您执行此操作?
我们会猜测 HARD 是我们想要的 - 它会将存储库(不确定是哪个)和我们的本地源代码恢复到以前的版本。如果是这种情况,为什么这不是默认值,另外两个选项的用例是什么?要么你想恢复,要么不恢复,如果你只恢复远程仓库,而不是你的本地工作文件,那么你将处于混乱状态。
我们没有任何本地修改的文件。
请注意,我们非常渴望一个不会破坏 git 的解决方案(我们过去曾破坏过 git,不得不创建一个新的 repo)。也许另一种方法是可行的,例如检出以前的版本,然后在最新版本的顶部检入,但我们不知道如何执行此操作。
我们知道我们可以做这样的事情:
git checkout [revision]
Run Code Online (Sandbox Code Playgroud)
但是我们如何告诉 git 我们想要让这个版本成为新的 head 或者用这个替换 head 呢?我猜我们不能只提交,因为没有什么可提交的,因为我们不再是主人。顺便说一句,如果您查看上一个。版本,修改它,然后提交,你提交什么,提交到哪里?
我已经阅读了https://www.atlassian.com/git/tutorials/undoing-changes但它没有解决本地和远程 repos 之间的关系。如果要撤消的提交全部推送到远程源主机,则不清楚恢复远程源、本地存储库和工作目录的方法是什么——所有 3 项都必须恢复到 3 次提交之前的提交。我们真的不在乎这是通过重置还是还原来完成的——我们只需要一种方法来做到这一点,它适用于所有 3 个位置。
正确的接收方可能是这样的:
git status (we are on master with a clean working dir)
git git revert HEAD~2
git commit -m "revert"
git push origin …Run Code Online (Sandbox Code Playgroud)