我必须使用 5GB repo。大多数情况下,我不必对单个文件进行更改,但我运行的脚本会更改,添加和删除许多文件。
现在,可能会有一些由这些外部脚本引起的重大更改。
如果脚本没有按预期工作,Git
是否有办法在运行脚本之前恢复到状态?
我尝试了git tag
和git branch
,但是当我结帐tag
或切换回master
分支时,更改的文件会获得原始状态但是文件添加的内容也保留在那里而不是消失。
我做错了什么?
当脚本更改了如此多的文件且结果不起作用时,如何管理这种情况?我可以在运行脚本之前轻松恢复到状态吗?
这就是我正在做的事情。也许我做错了什么。
mkdir git-learning
touch basic-file1 basic-file2 basic-file3
git init
git add .
git commit -m "At the start: first version"
在此git status
之后显示工作目录是干净的。
touch new-file1 new-file2 new-file3
git add .
git commit -m "second version: possibly wrong changes"
git reset --hard
git clean -f
现在git status
显示没有提交,工作目录是干净的。
但是当我运行new-file1
命令时,它仍会显示包括new-file2
,new-file3
和ls
在内的所有文件。但我需要一些只显示basic-file1
,basic-file2
,basic-file3
的命令,并吹走所有其他新文件。
我该怎么做?
答案 0 :(得分:3)
您可以使用git reset
和git clean
命令重置&如果要还原所有更改,请清理工作树。以下命令将强制清洁&将工作树重置为完全干净的状态:
git reset --hard <rev>
git clean -f
小心git clean -f
,因为它会删除所有未被git跟踪的文件。确保这是您真正想要做的,并在继续之前进行适当的备份。