Mercurial 删除我的文件!我怎样才能把它们拿回来?

Mercurial 删除我的文件!我怎样才能把它们拿回来?,mercurial,bitbucket,Mercurial,Bitbucket,伙计们,我需要你们的帮助 我第一次尝试将我的hg存储库推到bitbucket。它不起作用,我想这是因为这个项目太大了。因此,我只想推送一个文件。 因为我以前做过“hg add*”,所以我想撤销它,然后键入“hg remove*”,现在它删除了我计算机上的文件。但不是所有的,只有一些 我需要这些文件,怎么办?请告诉我他们还没走 非常感谢你的帮助 这是我的命令历史记录: 518 hg commit commit_test.txt -m "first commit" 519 hg add

伙计们,我需要你们的帮助

我第一次尝试将我的hg存储库推到bitbucket。它不起作用,我想这是因为这个项目太大了。因此,我只想推送一个文件。 因为我以前做过“hg add*”,所以我想撤销它,然后键入“hg remove*”,现在它删除了我计算机上的文件。但不是所有的,只有一些

我需要这些文件,怎么办?请告诉我他们还没走

非常感谢你的帮助

这是我的命令历史记录:

  518  hg commit commit_test.txt -m "first commit"
  519  hg add commit_test.txt
  520  hg commit -m "test"
  521  ls -ll
  522  ls -la
  523  cd .hg/ 
  524  ls
  525  ls -la
  526  pico hgrc
  527  cd ..
  528  hg status
  529  hg add commit_test.txt~ 


  530  hg add commit_test.txt
  531  hg commit -m "blabla"
  532  hg push
  533  hg add commit_test.txt
  534  hg commit -m "maaan"
  535  hg status
  536  hg remove *
  537  hg status
  538  hg commit -m "bla"
  539  ls
  540  hg add test.txt 
  541  hg commit -m "test"
  542  hg push
  543  hg revert
  544  hg revert --all
  545  history
  546  hg add *
  547  hg add -r *
  548  hg help add
  549  hg add -S *
  550  cd gui_relabel/
  551  hg add *
  552  cd images/
  553  hg add *
  554  cd ..
  555  hg revert all
  556  hg revert *
  557  history
以下是hg log给我的信息:

$hg日志

  changeset:   6:4726f671ae96
  tag:         tip
  user:        KG <...@gmail.com>
  date:        Wed Dec 04 12:21:30 2013 +0100
  summary:     test

  changeset:   5:55b3158def38
  user:        KG <...@gmail.com>
  date:        Wed Dec 04 12:17:19 2013 +0100
  summary:     bla

  changeset:   4:ae0dd836586d
  user:        KG <...@gmail.com>
  date:        Wed Dec 04 12:14:50 2013 +0100
  summary:     blabla

  changeset:   3:0249fdc26fa7
  user:        KG <...@gmail.com>
  date:        Wed Dec 04 12:13:59 2013 +0100
  summary:     test

  changeset:   2:40bdcf4d2104
  user:        KG <...@gmail.com>
  date:        Wed Dec 04 12:12:37 2013 +0100
  summary:     first commit test

  changeset:   1:f9e20020ca1d
  user:        KG <...@gmail.com>
  date:        Sun Nov 10 14:54:46 2013 +0100
  summary:     first commit

  changeset:   0:7a8edcee06ff
  user:        KG <...@gmail.com>
  date:        Mon Nov 04 20:36:41 2013 +0100
  summary:     blabla
变更集:6:4726f671ae96
标签:提示
使用者:公斤
日期:周三12月4日12:21:30 2013+0100
小结:测试
变更集:5:55b3158def38
使用者:公斤
日期:周三12月4日12:17:19 2013+0100
摘要:bla
变更集:4:ae0dd836586d
使用者:公斤
日期:周三12月4日12:14:50 2013+0100
小结:布拉布拉
变更集:3:0249fdc26fa7
使用者:公斤
日期:周三12月4日12:13:59 2013+0100
小结:测试
变更集:2:40bdcf4d2104
使用者:公斤
日期:周三12月4日12:12:37 2013+0100
概要:第一次提交测试
变更集:1:f9e20020ca1d
使用者:公斤
日期:太阳11月10日14:54:46 2013+0100
摘要:首次提交
变更集:0:7a8edcee06ff
使用者:公斤
日期:周一11月4日20:36:41 2013+0100
小结:布拉布拉

看起来您可以运行

hg backout 5

如果你愿意,你可以阅读。看起来你可以跑步了

hg backout 5

如果你愿意,你可以阅读你的文件没有消失。Mercurial不会丢弃数据,这是系统的首要规则之一

为了解释
hg remove
对您的文件做了什么,让我们逐一查看这些案例。工作副本中的文件可以处于少数几种不同状态中的一种:可以修改、添加、删除、丢失、未知、忽略或清除

我准备了一份工作副本,如下所示:

$ hg status --all
M a
A b
R c
! d
? e
I f
C g
文件
a
g
处于我上面提到的七种状态。现在,我们可以讨论当您尝试删除这些文件时会发生什么:

  • 修改后的文件(
    A
    )不会被删除:

    $ hg remove a
    not removing a: file is modified (use -f to force removal)
    
    $ hg remove b
    not removing b: file has been marked for add (use forget to undo)
    
    $ hg remove e
    not removing e: file is untracked
    
  • 添加的文件(
    b
    )也不会被删除:

    $ hg remove a
    not removing a: file is modified (use -f to force removal)
    
    $ hg remove b
    not removing b: file has been marked for add (use forget to undo)
    
    $ hg remove e
    not removing e: file is untracked
    
  • 已删除的文件(
    c
    )不再存在于工作副本中,因此不会再发生其他情况

  • 缺少的文件(
    d
    )不再存在于工作副本中,因此不会再发生任何情况

  • 未跟踪的文件(
    e
    )不会被删除:

    $ hg remove a
    not removing a: file is modified (use -f to force removal)
    
    $ hg remove b
    not removing b: file has been marked for add (use forget to undo)
    
    $ hg remove e
    not removing e: file is untracked
    
  • 被忽略的文件(
    f
    )不会被删除(因为它没有被跟踪):

  • 一个干净的文件(
    g
    )被删除

hg remove
实际上将从工作副本中删除的唯一文件类型是干净的文件。已提交一个干净的文件,因此内容安全地存储在存储库中。您可以使用
hg revert
将其取回:

$ hg revert g
$ hg status --all
M a
A b
R c
! d
? e
I f
C g

文件
g
与您删除它之前的内容相同。

您的文件没有消失。Mercurial不会丢弃数据,这是系统的首要规则之一

为了解释
hg remove
对您的文件做了什么,让我们逐一查看这些案例。工作副本中的文件可以处于少数几种不同状态中的一种:可以修改、添加、删除、丢失、未知、忽略或清除

我准备了一份工作副本,如下所示:

$ hg status --all
M a
A b
R c
! d
? e
I f
C g
文件
a
g
处于我上面提到的七种状态。现在,我们可以讨论当您尝试删除这些文件时会发生什么:

  • 修改后的文件(
    A
    )不会被删除:

    $ hg remove a
    not removing a: file is modified (use -f to force removal)
    
    $ hg remove b
    not removing b: file has been marked for add (use forget to undo)
    
    $ hg remove e
    not removing e: file is untracked
    
  • 添加的文件(
    b
    )也不会被删除:

    $ hg remove a
    not removing a: file is modified (use -f to force removal)
    
    $ hg remove b
    not removing b: file has been marked for add (use forget to undo)
    
    $ hg remove e
    not removing e: file is untracked
    
  • 已删除的文件(
    c
    )不再存在于工作副本中,因此不会再发生其他情况

  • 缺少的文件(
    d
    )不再存在于工作副本中,因此不会再发生任何情况

  • 未跟踪的文件(
    e
    )不会被删除:

    $ hg remove a
    not removing a: file is modified (use -f to force removal)
    
    $ hg remove b
    not removing b: file has been marked for add (use forget to undo)
    
    $ hg remove e
    not removing e: file is untracked
    
  • 被忽略的文件(
    f
    )不会被删除(因为它没有被跟踪):

  • 一个干净的文件(
    g
    )被删除

hg remove
实际上将从工作副本中删除的唯一文件类型是干净的文件。已提交一个干净的文件,因此内容安全地存储在存储库中。您可以使用
hg revert
将其取回:

$ hg revert g
$ hg status --all
M a
A b
R c
! d
? e
I f
C g

文件
g
的内容与您删除它之前的内容相同。

您能做一个
hg日志
并将结果发布到您的问题中吗?可能重复的,您还可以告诉我,要使用哪个命令吗?我太害怕把一切都搞砸,把那些文件永远删除……请过来。这是您将获得Mercurial最佳交互式帮助的地方。您能做一个
hg日志
并将结果发布到您的问题中吗?可能重复的,请您仍然告诉我,要使用哪个命令?我太害怕把一切都搞砸,把那些文件永远删除……请过来。这是您将获得Mercurial最佳互动帮助的地方。