思路是使用 git reflog 查看在哪里ammend的.找到HEAD{N}, N是ammend之前的那个数. 然后使用git reset --soft HEAD@{N} see at http://stackoverflow.com/questions/1459150/how-to-undo-git-commit-amend-done-instead-of-git-commit# Move the current head so that it's pointing at the old commit# L...
这只能在没有推送之前有用. 如果你已经推了, 唯一安全能做的是git revert SHAofBadCommit, 那会创建一个新的提交(commit)用于撤消前一个提交的所有变化(changes);或者, 如果你推的这个分支是rebase-safe的 (例如:其它开发者不会从这个分支拉), 只需要使用git push -f。 7、删除任意提交(commit) 同样的警告...
head(小写)是commit对象的引用,每个head都有一个名字(分支名字或者标签名字等等),但是默认情况下,每个叫master的repository都会有一个head, 一个repository可以包含任意数量的head。在任何时候,只要这个head被选择成为”current head“,那么这个head就成了HEAD,总是大写 [版本回退] ·git reset:回退版本,可指定某一次提...
这只能在没有推送之前有用. 如果你已经推了, 唯一安全能做的是git revert SHAofBadCommit, 那会创建一个新的提交(commit)用于撤消前一个提交的所有变化(changes);或者, 如果你推的这个分支是rebase-safe的 (例如:其它开发者不会从这个分支拉), 只需要使...
(my-branch*)$ git reset --soft HEAD@{1} 这只能在没有推送之前有用. 如果你已经推了, 唯一安全能做的是 git revert SHAofBadCommit , 那会创建一个新的提交(commit)用于撤消前一个提交的所有变化(changes);或者, 如果你推的这个分支是rebase-safe的 (例如:其它开发者不会从这个分支拉), 只需要使用 ...
(my-branch*)$ git reset --soft HEAD@{1} 这只能在没有推送之前有用. 如果你已经推了, 唯一安全能做的是git revert SHAofBadCommit, 那会创建一个新的提交(commit)用于撤消前一个提交的所有变化(changes);或者, 如果你推的这个分支是rebase-safe的 (例如:其它开发者不会从这个分支拉), 只需要使用git ...
上面的 reflog 展示了从 master 分支签出 (checkout) 到 2.2 分支,然后再签回。那里,还有一个硬重置 (hard reset) 到一个较旧的提交。最新的动作出现在最上面以HEAD@{0}标识. 如果事实证明你不小心回移 (move back) 了提交(commit), reflog 会包含你不小心回移前 master 上指向的提交(0254ea7)。
$ git checkoutHEAD^myfile $ git add-A$ git commit--amend 这将非常有用,当你有一个开放的补丁(open patch),你往上面提交了一个不必要的文件,你需要强推(force push)去更新这个远程补丁。 我想删除我的的最后一次提交(commit) 如果你需要删除推了的提交(pushed commits),你可以使用下面的方法。可是,这会...
通过下面的方法,从一个提交(commit)里移除一个文件: $ git checkout HEAD^ myfile $ git add -A $ git commit --amend 1. 2. 3. 这将非常有用,当你有一个开放的补丁(open patch),你往上面提交了一个不必要的文件,你需要强推(force push)去更新这个远程补丁。
# Move the current head so that it's pointing at the old commit# Leave the index intact for ...