短版
将分支等同于master
的最简单方法是什么,丢弃任何差异?
到目前为止,我只使用git branch -D wip
,然后使用git checkout -b wip
,但这看起来有点傻。
动机
我经常在我的wip
分支旁边有一个master
分支,用于“正在进行的工作”。有时,这样一个分支上的工作会“落后”,当我重新发现它时,我发现我不再需要它了。当我想使用分支存储一组新的“正在进行的工作”时,这种重新发现经常发生,我发现我只是想放弃与master
的任何差异,因此新的“正在进行的工作”适合于最重要的。弄清楚差异是不值得的:上面描述的解决方案对我来说很好。有没有更好的解决方案来解决这个用例?
答案 0 :(得分:12)
在你的分支中尝试这个:
git reset --hard master
这将使您的分支与master相同,删除您可能已完成的所有提交,并丢弃暂存区域中的所有文件。
答案 1 :(得分:7)
如果你真的想用这个名字吹走上一个分支,并创建一个新的分支你可以使用:
git checkout -B wip master
使用大写版本而不是-b
将导致git切换到命名分支,并将其重置为命名为最后一个参数的新起点。如果您目前处于所需的起点,可以不使用最后一个参数(master
此处),则默认使用HEAD
。