我在变基础,我有两个承诺A和B,我想以相反的顺序申请,B然后A,但他们发生冲突。有没有办法将第二个提交B分成两个提交:B1只包含不与A冲突的帅哥,而B2只包含冲突的帅哥?
我曾经拥有自己的补丁管理工具,它有一个sift
命令为我做了这个。当然,Git在各方面都比我的工具更好,但我错过了这个功能。
答案 0 :(得分:1)
交互式rebase本身(我假设你已经在使用)将帮助你顺利解决这个问题。为了完整地回答这个问题,我们会注意到,可以通过在man git-rebase查找standard <- function(dataframe = mtcars){
var.names <- names(dataframe)
dataframe$s <- as.data.frame(lapply(dataframe[, var.names], scale))
dataframe
}
# Example:
(d <- standard()) # HERE I see the new standardized variables with prefix "s."
d$s.wt # NULL # but HERE I can't access the standard variables!!!
(或--interactive
)选项找到更多信息。
一个粗略的例子:
-i
这将打开您的编辑器,每个提交都标记为git rebase -i HEAD~5 # rebase starting on some earlier commit
。将您要拆分的那个更改为pick
,然后保存并关闭该文件。
rebase将在此提交后立即停止,允许您修改或以其他方式更改历史记录。在您的情况下,您将需要重置为它之前的提交,然后在其位置进行新提交,然后继续rebase过程。您可以使用edit
或--patch
选项-p
来部分添加文件。
git add
最好仔细检查最终结果是否与之前的结果相符。 Git会将git reset HEAD^
git add -p <file> # -p is optional, use if needed
git commit -m 'First part'
git add -p <file> # -p is optional, use if needed
git commit -m 'Second part'
设置为指向您在启动rebase之前的提交,因此您可以简单地对此进行区分以查看没有更改(或者更改对应于您在rebase中故意执行的任何操作)。
ORIG_HEAD
我希望这会有所帮助。