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