是否有一种简便的方法可以轻松检查我当前的项目与master分支有何不同?我想以某种方式再次拉动管理员并“解决冲突”,以再次检查我所做的更改。
我正在从master进行副项目-我的项目永远不会合并到master,但是master会自己开发。我现在有一个尴尬的错误,我想浏览一下我所做的所有更改以查看错误的位置。我不知道这是我做过的事情还是对master进行了某种核心更改。不过,我不想撤消所有更改,因此希望有一种方法可以找到与我上面描述的类似的方法。
编辑:我可能应该注意到,我所做的99%的工作都位于不会合并冲突的单独文件中-因此,这并不像简单地进行版本更改那样简单。我需要找到将我的代码绑定到主项目本身的代码的1%。
答案 0 :(得分:1)
为方便起见,我建议在此处使用bisect
命令。
可以肯定的是,您可以可以一个接一个地结帐,从HEAD
开始直到找到断点为止,但是bisect
的目的是为了减轻负担这个过程。这样,很快就可以将数百个提交分解为几个步骤。
基本上,它采用二分法搜索的原理,在两个时间点之间(在您的情况下,从现在到分支主节点之间)签出一次提交,让您运行所需的任何测试,然后等待您选择将提交视为“错误”(如果您的错误出现在时间轴的这一点)或“良好”(如果错误尚未显示 )。然后,它会反复重复该过程,直到找到造成麻烦的提交为止。
# to start the search
git bisect start
# to tag the present commit as "good"
git bisect good
# to tag the present commit as "bad"
git bisect bad
# to exit bisect mode and return to just before "bisect start"
git bisect reset
(标签在这里是通俗的用法,当然不涉及真正的git标签,既不轻量也不带注释)
看看doc(bisect
的其他一些子命令很方便,例如bisect log
),深吸一口气,抓住头灯,然后去做。< / p>