Remove file from a commit in Mercurial

后端 未结 2 1598
耶瑟儿~
耶瑟儿~ 2021-02-02 06:11

I have a commit onto which I have amended some files. Some of these files that were part of the amend I do not want in this commit. Is there a way in Mercurial to remove certain

相关标签:
2条回答
  • 2021-02-02 06:24

    Try out:

    hg forget somefile.txt
    hg commit --amend
    

    If the file was new (i.e. you had used hg add).

    If that file already existed try:

    cp somefile.txt somefile.txt.bak
    hg revert somefile.txt --rev .~1
    hg commit --amend
    

    Which is basically telling mercurial to revert the file (somefile.txt) back to the state it was one revision ago (--rev .~1).

    Just make sure to back up the file you are reverting before entering the command so that you do not lose your changes. I was under the impression mercurial does this automatically for you, but after testing it quickly I'm not so sure.

    0 讨论(0)
  • 2021-02-02 06:37

    hg uncommit somefile.txt does exactly this for me.

    Like plain git reset, it removes the change from the commit but leaves the file contents unchanged, so now hg diff shows the change you just uncommitted.

    The uncommit command claims to come from the uncommit extension, but may actually be coming from the evolve extension, I admit I'm not 100% sure!

    0 讨论(0)
提交回复
热议问题