[英]Return from git checkout <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
取消此更改,並:
git checkout .
恢復你HEAD
。
git reset --hard
將在一個命令中執行基本相同的操作。
下面的答案假定您沒有新的變更,並且不想與錯誤的結帳中的意外變更混在一起。
使用取消結帳中的更改
git reset master some_directory
要么
git reset HEAD some_directory
使用以下命令將工作樹中的文件恢復為以前的狀態
git checkout HEAD some_directory
最后,使用以下命令清理master的最新提交中可能已刪除的所有文件:
git ls-files -z --others some_directory | xargs -0 rm
如果您完全確定要恢復原樣,並且不介意丟失任何可能存在的更改(無論在some_directory
或其他位置),請跳過上述所有操作,然后運行
git reset --hard master
!在開始修復它之前,請先復制您的完整目錄;)特別是例如,如果您沒有遠程目錄,則只有本地存儲庫。
您將需要git reset(或git reset --hard)。
其他方法可能是:切換到某個分支,刪除master git branch -D master
,然后重新創建它git checkout -b master origin/master
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.