我想从线性提交树中删除选定的提交日志条目,以便条目不会显示在提交日志中.
我的提交树看起来像:
R--A--B--C--D--E--HEAD
Run Code Online (Sandbox Code Playgroud)
我想删除B和C条目,以便它们不会在提交日志中显示,但应保留从A到D的更改.也许通过引入一个提交,使B和C成为BC并且树看起来像.
R--A--BC--D--E--HEAD
Run Code Online (Sandbox Code Playgroud)
或者,理想情况下,A直接来自D.D'表示从A到B,B到C和C到D的变化.
R--A--D'--E--HEAD
Run Code Online (Sandbox Code Playgroud)
这可能吗?如果有,怎么样?
这是一个相当新的项目,因此目前没有分支,因此也没有合并.
jfs*_*jfs 272
git-rebase(1)正是如此.
$ git rebase -i HEAD~5
Run Code Online (Sandbox Code Playgroud)
git awsome-ness [git rebase --interactive]包含一个例子.
git-rebase在公共(远程)提交上使用.commit或stash您当前的更改).$EDITOR.pick前C和D通过squash.它会将C和D合并为B.如果要删除提交,则只需删除其行.如果您迷路了,请键入:
$ git rebase --abort
Run Code Online (Sandbox Code Playgroud)
CB *_*ley 73
# detach head and move to D commit
git checkout <SHA1-for-D>
# move HEAD to A, but leave the index and working tree as for D
git reset --soft <SHA1-for-A>
# Redo the D commit re-using the commit message, but now on top of A
git commit -C <SHA1-for-D>
# Re-apply everything from the old D onwards onto this new place
git rebase --onto HEAD <SHA1-for-D> master
Run Code Online (Sandbox Code Playgroud)
rad*_*ado 41
这是一种删除特定提交ID的方法,只知道您要删除的提交ID.
git rebase --onto commit-id^ commit-id
Run Code Online (Sandbox Code Playgroud)
请注意,这实际上删除了提交引入的更改.
idb*_*rii 19
扩展JF Sebastian的答案:
您可以使用git-rebase轻松地对提交历史记录进行各种更改.
运行git rebase --interactive之后,你在$ EDITOR中得到以下内容:
pick 366eca1 This has a huge file
pick d975b30 delete foo
pick 121802a delete bar
# Rebase 57d0b28..121802a onto 57d0b28
#
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
Run Code Online (Sandbox Code Playgroud)
您可以移动行来更改提交顺序并删除行以删除该提交.或者,您可以添加一个命令将两个提交组合(压缩)到一个提交(先前提交是上面的提交),编辑提交(更改内容)或重新提交消息.
我认为选择只是意味着你想单独留下那个提交.
(例子来自这里)
Hea*_*ead 14
您可以通过以下方式非交互式删除示例中的 B和C:
git rebase --onto HEAD~5 HEAD~3 HEAD
Run Code Online (Sandbox Code Playgroud)
或象征性地,
git rebase --onto A C HEAD
Run Code Online (Sandbox Code Playgroud)
请注意,B和C的变化不会在D中; 他们会走了.
| 归档时间: |
|
| 查看次数: |
203513 次 |
| 最近记录: |