想象一下,你有一个名为feature-x-alpha
的分支,你做了很多提交并达到了预期的状态。但是,由于你匆忙,这些提交和它的消息推动有点奇怪。
由于您有一个分支feature-x
,您可以更改为此分支并对feature-x-alpha
进行本地更改,现在您可以使用此更改执行一些新的更有组织的提交。显然,由于这被视为不同(尽管有一些结果),您可能会删除分支feature-x-alpha
。
您可以使用命令
在feature-x-alpha
上实现此目的
git symbolic-ref HEAD refs/heads/feature-x
将您更改为分支feature-x
,但不会更改工作目录的文件。
在我看来,symbolic-ref命令可以正常工作,但是这3个命令似乎也提供了相同的结果。
git symbolic-ref HEAD refs/heads/my-branch
git reset my-branch
git read-tree my-branch
我想了解这三个命令的不同之处,哪一个更适合这种用法(更改当前分支而不更改工作目录的文件,或类似的东西会将我的工作目录更改为另一个的状态除了当前的分支。)
答案 0 :(得分:0)
你可以使用更高阶的命令吗?像这样:
git checkout feature-x
git merge --squash feature-x-alpha
git commit -m "alpha"
git branch -D feature-x-alpha