我通常会提交一份提交列表以供审核.如果我有以下提交:
HEADCommit3 Commit2 Commit1...我知道我可以修改头部提交git commit --amend.但是我怎么能修改Commit1,因为它不是HEAD提交?
我做了3个git提交,但没有被推送.如何修改不是最新的旧版本(ddc6859af44)和(47175e84c)?
$git log
commit f4074f289b8a49250b15a4f25ca4b46017454781
Date: Tue Jan 10 10:57:27 2012 -0800
commit ddc6859af448b8fd2e86dd0437c47b6014380a7f
Date: Mon Jan 9 16:29:30 2012 -0800
commit 47175e84c2cb7e47520f7dde824718eae3624550
Date: Mon Jan 9 13:13:22 2012 -0800
Run Code Online (Sandbox Code Playgroud) 我已提交更改,忘记将文件添加到更改集.在其他提交之后,我意识到文件现在从HEAD^4提交中丢失了.
如何重写先前的提交以包含丢失的文件?
假设我有3次未提交的提交.现在我想更改第一次或第二次提交的提交消息(为第三次提交更改它们很简单git commit --amend).怎么做?
如果我有以下提交
38deab3 Bug Fix# 10
f33fb65 Bug Fix# 20
4fa0485 Bug Fix# 30
Run Code Online (Sandbox Code Playgroud)
为什么git rebase -i f33fb65允许我编辑 38deab3 而不是 f33fb65?为什么我必须运行git rebase -i 4fa0485才能编辑 f33fb65?
我的提交历史如下:
* 8cd26ba 2013-06-26 | history server-side (HEAD, noXHR)
* bffd858 2013-06-25 | popups and modals
* d95c5f4 2013-06-21 | Map update for new interaction
...
Run Code Online (Sandbox Code Playgroud)
当我已经承诺'8cd26ba'时,我发现了模态机制中的一个错误并想要解决它.我试图修改'bffd858'(因为修复与它有关),如此处所述.我做了以下几个步骤:
类型
$ git rebase -i bffd858
Run Code Online (Sandbox Code Playgroud)git给我看(纳米)
pick 6fa566b history server-side
# Rebase bffd858..6fa566b onto bffd858
#
# 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 …Run Code Online (Sandbox Code Playgroud)