我们想要撤消最后 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) 我对Git很新,我有一个小问题.
在SVN [这感觉就像阿尔伯特叔叔的傻瓜和马的故事......"在战争期间......"]当我想用最新的更改来更新生产网站时,我会在TSVN中做一个差异并导出所有两个修订版之间更改/添加的文件.您可以想象,之后很容易将这些文件存入生产站点.
但是,似乎我无法在Git中找到"导出已更改的文件"选项.我可以做差异并看到更改,我可以得到一个文件列表,但我实际上无法导出它们.有合理的方法吗?我错过了一些简单的事吗?
为了再次澄清,我需要导出两个特定提交之间的所有更改.
提前致谢!
如何从Tortoise-Git中删除未使用的git bracnhes?这些分支已在本地和远程删除,我不想再使用此下拉菜单了

我安装了TortoiseGit,过去它被tortoisemerge无缝地用作我的mergetool.但是自从我将TortoiseGit升级到1.8.x后,我的mergetool不再有效:
c:\Code\whatever> git mergetool
merge tool candidates: tortoisemerge emerge vimdiff
No known merge resolution program available.
Run Code Online (Sandbox Code Playgroud)
这曾经工作过,为什么它现在坏了?
我在Windows上使用TortoiseGit,我想知道如何设置它以便它总是添加提交作者和日期.
换句话说,默认情况下这两个复选框是否可以打开?

我对git有点新意,所以也许有人会告诉我这是无用的或不推荐的.
如何更改TortoiseGit推送对话框的默认远程参考?通常是这样的master.refs/for/master当我从组合键盘或键盘上推出时,我可以将其改为总是有效,但我希望保留我选择的参考号.我怎样才能做到这一点?

当我从TortoiseGit推送时,默认情况下不包括标签.但是,在最近的更新中,添加了一个选项以帮助解决此问题.现在,推送对话框中有一个"包含标签"的复选框.如何将此设置为默认启用?
我想在推送标签时忘记添加支票.在这一点上,我不在本地使用任何我不想推送的标签,因此与其他开发人员共享.
我尝试添加
[push]
followTags = true
Run Code Online (Sandbox Code Playgroud)
到我的gitconfig文件(本地,全局,系统范围,tgitconfig ...),TortoiseGit允许你从Settings-> Git编辑,但既没有设置开关,也没有在我按下时执行动作...
使用TortoiseGit(我试图避免命令行使用)如何删除从某个提交中获得的所有提交,并"回到过去"(示例用法:继续做某事,想通知我不喜欢它在哪里我要去,并决定"无视"所有人之间的"回归".
总之,我希望"返回"5次提交,然后删除它们.
当我尝试使用我最喜欢的工具TortoiseGit推送到我的远程仓库(Unfuddle)时,我收到以下错误.然后我打开GitGUI并且能够毫无问题地推送.我通过一些谷歌搜索收集了一些选美需要为一些PuTTY变种运行,并且它正在运行.我下一步去哪儿看?
没有可用的支持身份验证方法(服务器已发送:publickey)
我收到错误git没有在Tortoise Git中干净地退出(退出代码128),同时在GITHub中将我的更改推送到master
git.exe push -v --progress "origin" master:master
Pushing to https://github.com/myproj/Net.git
error: The requested URL returned
error: 504 while accessing
https://github.com/myproj/Net.git/info/refs?service=git-receive-pack
fatal: HTTP request failed
git did not exit cleanly (exit code 128) (63228 ms @ 22-12-2012 23:57:48)
Run Code Online (Sandbox Code Playgroud)
我已经提到如何在TortoiseGit上解决"git没有彻底退出(退出代码128)"错误?
但我使用HTTPS而不是SSH.我的意思是我使用来自GITHub的HTTPS网址克隆.另外我不知道如何生成SSH!

会有什么问题?