2016-12-24 44 views
1

我想實現功能,將git reset --hard HEAD^之前的更改保存爲工作目錄作爲分離頭。負責`git reset`命令的源文件是什麼?

根據this question有很多人失去了他們的工作。

所以我給予下一場景的git reset --hard <sha>

1. `git add .` 
2. `git commit -m 'Reset hard'` 
3. `git reset --hard <sha>` 

所以,如果我需要恢復丟失的工作目錄,我將使用git fsck --lost-found

會不會是有用的在未來的Git功能?

如果它將是什麼源文件負責git reset命令?

+0

這個問題在[git mailing list](http://vger.kernel.org/vger-lists.html#git)上更合適,而不是SO。 –

+0

爲什麼不只是'git stash'? –

+0

@AndyRay因爲在'git reset --hard'之前你可能會忘記'git stash'。有了這個,你還有一次機會來恢復你的工作 –

回答

2

首先,如果你實現這個功能,你不需要使用git fsck --lost-found:sonce你剛剛做了一個提交,你會看到(並在需要時恢復)在git reflog中提交。

二,builtin/reset.c是執行git reset的文件。

相關問題