aby*_*s.7 5 git git-rebase sparse-checkout
我有一个启用了稀疏结帐的工作副本。我想做的git rebase -i。但是,如果我在变基时遇到冲突,所有从签出文件中排除的文件都标记为deleted和not staged for commit。
因此,当我确实解决实际冲突和所需文件时,由于未暂存的更改,git add我仍然无法完成。git rebase --continue我可以git checkout -f -- <excluded files>,但是很不方便。
git-rebase有没有更好的稀疏结账方法?
我在“ Git稀疏结帐与排除”中提到过,你现在有了这个git sparse-checkout命令。
我所说的“现在”是指自 Git 2.25+(2020 年第一季度)以来。
而且,正如我在“启用后如何禁用稀疏结帐? ”中记录的那样,您可以禁用/重新启用稀疏结帐。
由于使用稀疏签出进行变基比较棘手(因为变基操作适用于整个历史记录,而不仅仅是工作目录中的文件),因此您可以考虑禁用/启用方法(使用比 2015 年更新的 Git 版本)一):
git branch backup-branch
git sparse-checkout disable
git rebase -i <base-branch>
# Resolve them as you normally would.
# After resolving, stage the changes:
git add <resolved-files>
git rebase --continue
# Re-enable the sparse-checkout
git sparse-checkout set <paths-or-patterns>
# Replace `<paths-or-patterns>` with the paths or patterns you had previously used.
Run Code Online (Sandbox Code Playgroud)
如果出现任何问题,您可以随时切换回您的backup-branch重新开始。
| 归档时间: |
|
| 查看次数: |
376 次 |
| 最近记录: |