我经常使用git stash并git stash pop保存和恢复工作树中的更改.昨天我的工作树上有一些变化,我已经藏起来了,然后我对工作树做了更多改动.我想回去查看昨天发生的变化,但git stash pop似乎删除了对相关提交的所有引用.
我知道如果我使用git stash那么.git/refs/stash包含用于创建存储的提交的引用.而.git/logs/refs/stash包含整个存储.但那些参考文献已经消失了git stash pop.我知道提交仍然在我的存储库中,但我不知道它是什么.
有没有一种简单的方法来恢复昨天的隐藏提交引用?
请注意,这对我来说并不重要,因为我有每日备份,可以回到昨天的工作树来获取我的更改.我问,因为必须有一个更简单的方法!
我有两个分支,即master与development在GitHub的库.我正在开发分支中进行所有开发,如图所示.
git branch development
git add *
git commit -m "My initial commit message"
git push -u origin development
Run Code Online (Sandbox Code Playgroud)
现在我想将development分支上的所有更改合并到master.我目前的做法是:
git checkout master
git merge development
git push -u origin master
Run Code Online (Sandbox Code Playgroud)
如果我遵循的程序是正确的,请告诉我.
我添加了一个新文件F1并对另一个文件F2进行了更改,但后来又进行了"git reset --hard HEAD ^",我丢失了对文件的所有更改.
有一些方法,我可以让他们回来.
我在这里看了一个相关的问题:如何撤消git reset --hard HEAD~1? 但是,这个问题假设一个人做了一个git提交.
我有一个iOS项目,我有一些更改没有提交.我点击错误地丢弃所有更改.我实际上只想丢弃特定文件的更改.但是我点击了错误的按钮.现在一切都消失了.如何撤消更改?
git status没有显示任何内容.
我担心我已经知道了答案,但无论如何都在这里..我偶然点击了VS Code(OSX)中的"Discard All Changes",现在一个月的工作量已经消失.Poof'd.事实是,我没有正确设置GIT,所以我还没有做任何提交.无论如何我可以恢复工作吗?现在我的工作目录就像空的一样好..
[编辑]我应该澄清一下,控制台日志说它做了一个"git clean -f -q",这意味着文件已经消失了.但我想知道VSCode是否有备份或历史或缓存..或任何东西.我很绝望..
我git checkout -- .做错了。
既未提交也未隐藏的更改。.它们是检索我的更改的方法吗?
尝试的git reflog更改未反映在其中。
如果我提交或隐藏我知道要检索,但不做任何结帐又如何呢?
我所做的事情
git status
在我发现一些无用的更改后,我尝试进行checkout更改,git checkout -- .
所以有可能找回吗?