我已經運行以下命令:回到<sha1><directory>
git checkout <commit-hash> some_directory
我master
,並希望返回到清潔狀態master
在面前。我最初的想法是,
git checkout master
會做的伎倆,但無濟於事,因爲有些文件在分支上顯示爲「新」。
我已經運行以下命令:回到<sha1><directory>
git checkout <commit-hash> some_directory
我master
,並希望返回到清潔狀態master
在面前。我最初的想法是,
git checkout master
會做的伎倆,但無濟於事,因爲有些文件在分支上顯示爲「新」。
當喲運行git checkout <commit-hash> some_directory
的文件顯示爲增加。你可以用git status
看到:
$ git status
On branch test
Changes to be committed:
[...]
當你在這種狀態下,你必須做到:
git reset
到unstage這種變化,並且:
git checkout .
恢復是什麼在您的HEAD
。
git reset --hard
在一個命令中基本相同。
!在你開始修復它之前,先複製你的完整目錄;)特別是如果你沒有遠程和本地回購是你唯一的回購。
你需要git reset(或者git reset --hard)。
其他的方式可以是:切換到一些什麼分支,刪除主 git branch -D master
,然後重新創建它 git checkout -b master origin/master
下面的答案假定您沒有新的更改,您希望與來自錯誤簽出的意外更改混在一起。
Unstage從收銀臺與
git reset master some_directory
或
git reset HEAD some_directory
的變化將文件放在你的工作樹回到其先前的狀態
git checkout HEAD some_directory
最後,清理在主人最近提交的
01中可能已刪除的任何文件git ls-files -z --others some_directory | xargs -0 rm
如果你有絕對的把握要回到主原樣,不介意失去可能存在的任何更改(無論是在some_directory
或其他地方),跳過所有上述及運行
git reset --hard master
你能詳細說明爲什麼它不起作用嗎?你遇到了什麼錯誤? – Mureinik