如何使用GIVENSHA恢复提交?我只想删除给定SHA的更改?我想保留在给定SHA之前和之后所做的所有提交。我只想删除指定SHA的更改。我已阅读ReverttoacommitbyaSHAhashinGit?,我的理解是重置我想恢复的SHA之后所做的所有提交。这不是我想要的方式。 最佳答案 您可以使用gitrevert尝试还原提交所做的更改。这不会从历史记录中删除提交,只是进行更改以将其作为新提交撤消。换句话说,您的第一个提交仍然在历史记录中,并且在您的分支的头部有一个额外的提交,这是原始提交的有效逆向。如果您还没有与其他任何人共享您
昨天,我团队的一个checkin损坏了我们的github存储库。在github上,他们显示了这个错误:$gitfsckerror:sha1mismatch87859f196ec9266badac7b2b03e3397e398cdb18error:87859f196ec9266badac7b2b03e3397e398cdb18:objectcorruptormissingmissingblob87859f196ec9266badac7b2b03e3397e398cdb18当我试图pull到另一台机器上时,我得到了这个:Hyperion:Convoy-clonesaalon$gitfsck
昨天,我团队的一个checkin损坏了我们的github存储库。在github上,他们显示了这个错误:$gitfsckerror:sha1mismatch87859f196ec9266badac7b2b03e3397e398cdb18error:87859f196ec9266badac7b2b03e3397e398cdb18:objectcorruptormissingmissingblob87859f196ec9266badac7b2b03e3397e398cdb18当我试图pull到另一台机器上时,我得到了这个:Hyperion:Convoy-clonesaalon$gitfsck
当您解决冲突,然后暂存更改,然后执行gitdiff时,它会显示两列+和-,一列用于“我们的”,一列用于“他们的”。给定repo的git历史记录中的merge提交,我如何查看由其他人完成的决议?在其他情况下,我以前见过它(我想是在gitk中),但我似乎无法为我拥有的这个SHA1确定它。 最佳答案 如果你知道ref,那么gitshow将向您显示merge提交的解决方案(如果有)。对于日志,使用gitlog-p-c或gitlog-p--cc.来自gitlog的联机帮助页:-cWiththisoption,diffoutputforamer
当您解决冲突,然后暂存更改,然后执行gitdiff时,它会显示两列+和-,一列用于“我们的”,一列用于“他们的”。给定repo的git历史记录中的merge提交,我如何查看由其他人完成的决议?在其他情况下,我以前见过它(我想是在gitk中),但我似乎无法为我拥有的这个SHA1确定它。 最佳答案 如果你知道ref,那么gitshow将向您显示merge提交的解决方案(如果有)。对于日志,使用gitlog-p-c或gitlog-p--cc.来自gitlog的联机帮助页:-cWiththisoption,diffoutputforamer
我们将Hudson与git结合使用。我们有一个编译我们项目的构建/测试服务器,然后是一个我们需要部署到的QA服务器。我们想要获取当前构建的gitcommitsha并使用它来pull适当的提交以部署在我们的QA服务器上。不幸的是,hudongit插件似乎没有在环境变量中设置gitcommitsha(例如svn插件在SVN_REVISION中所做的)。我们如何解决这个问题?指针/示例会有所帮助,因为我是hudson新手。谢谢 最佳答案 我在Post构建命令中添加了:env在日志中我找到了所有环境变量。其中一些是:BUILD_TAG=je
我们将Hudson与git结合使用。我们有一个编译我们项目的构建/测试服务器,然后是一个我们需要部署到的QA服务器。我们想要获取当前构建的gitcommitsha并使用它来pull适当的提交以部署在我们的QA服务器上。不幸的是,hudongit插件似乎没有在环境变量中设置gitcommitsha(例如svn插件在SVN_REVISION中所做的)。我们如何解决这个问题?指针/示例会有所帮助,因为我是hudson新手。谢谢 最佳答案 我在Post构建命令中添加了:env在日志中我找到了所有环境变量。其中一些是:BUILD_TAG=je
我的一位同事检查了Git的一些更改,我想看看这些更改到底是什么。换句话说,他的签到与其父签到之间的差异。在我看来合乎逻辑的是运行这个命令:gitdiffshaOfHisCheckIn但这没有用。它似乎显示了该SHA和我当前的工作副本之间的差异。显示给定SHA与其父项之间差异的正确命令是什么? 最佳答案 gitshow是你的friend:gitshowshaOfHisCheckIn 关于Git-如果我有sha,查看与以前版本差异的最简单方法,我们在StackOverflow上找到一个类似的
我的一位同事检查了Git的一些更改,我想看看这些更改到底是什么。换句话说,他的签到与其父签到之间的差异。在我看来合乎逻辑的是运行这个命令:gitdiffshaOfHisCheckIn但这没有用。它似乎显示了该SHA和我当前的工作副本之间的差异。显示给定SHA与其父项之间差异的正确命令是什么? 最佳答案 gitshow是你的friend:gitshowshaOfHisCheckIn 关于Git-如果我有sha,查看与以前版本差异的最简单方法,我们在StackOverflow上找到一个类似的
在类似的话题中Validateifcommitexists他们推荐:gitrev-listHEAD..$sha如果它退出时没有错误代码,则表明存在提交。但仅用于验证是否足够有效?我在考虑这个选项:gitcat-filecommit$sha它适合我的任务吗?还有其他想法吗? 最佳答案 您可以只运行gitcat-file-t$sha并检查它是否返回“commit”。你是对的,你不需要为此实际打印实际对象......不过,我不能100%确定幕后发生的事情是否更有效率。测试$(gitcat-file-t$sha)==commit