我对这个git事情很陌生,就我的经验而言,我以前从未遇到过这样的事情。
我经常使用多个本地分支,因为我使用组,并使用其他分支作为参考。
在这种情况下,我的一个朋友承诺并将一些东西推到他的分店,他建议我们看一看。
所以我在我自己的分支上提交了我的更改,但是像往常一样,有些Xcode文件在我们打开它们时会神奇地编辑自己,所以我认为只是git stash
它们是个好主意(在提交之后)并稍后处理它们,这样我就可以查看我朋友的分支并获取更新。
完成后,我切换回我的分支,并git stash pop
,并检出了不重要的文件。
然后我注意到我创建的文件已经消失了。
我试图做git revert
,但它没有做任何事,不管我理解发生了什么,无论如何。
这是我输入的命令列表:
git add Integra-Geochemistry/Controllers/WaterSamplingFormOneViewController.swift
git add Integra-Geochemistry/Views/WaterSamplingFormOneView.swift
git add Integra-Geochemistry/Xibs/WaterSamplingFormOne.xib
git status
git commit -m "Initial commit - added WaterSamplingForm"
git status
git branch
git branch dev/surface-thermal-sampling
git checout dev/surface-thermal-sampling
git checkout dev/surface-thermal-sampling
git stash
git status
git checkout dev/surface-thermal-sampling
git pull origin dev/surface-thermal-sampling
git branch
git status
git branch
git checkout dev/watersampling
git status
git stash pop
git checkout Integra-Geochemistry/Xibs/AddRadonFormView.xib
git checkout Integra-Geochemistry/Xibs/RadonReadingFormFourView.xib
git checkout Integra-Geochemistry/Xibs/RadonReadingFormThreeView.xib
git checkout Integra-Geochemistry/Xibs/RadonReadingFormTwoView.xib
git checkout Integra-Geochemistry/Xibs/RadonReadingFormView.xib
git log
git revert 63947089d3479fff91ae4fb2ba5d59bd39d0c30d
作为参考,这是日志文件(在我执行git revert之后)
commit 8f5a3b8a4db5bad0a750ba08cd2d5b6a8a2fe18e
Author: <-------->
Date: Tue Jan 5 17:28:19 2016 +0800
Revert "Initial commit - added WaterSamplingForm"
This reverts commit 63947089d3479fff91ae4fb2ba5d59bd39d0c30d.
commit 63947089d3479fff91ae4fb2ba5d59bd39d0c30d
Author: <-------->
Date: Tue Jan 5 17:13:35 2016 +0800
Initial commit - added WaterSamplingForm
我做了很多提交,推动和切换分支,但我从来没有像这样消失在我身上。
我的文件是否可以恢复正常?我讨厌重新开始。感谢。
答案 0 :(得分:0)
我的文件是否可以恢复正常?我讨厌重新开始。感谢。
是的。
键入class MapInPlaceTests {
@Test fun testMutationIterationOfList() {
val unhappy = setOf("Sad", "Angry")
val startingList = listOf("Happy", "Sad", "Angry", "Love")
val expectedResults = listOf("Happy", "Love", "Love", "Love")
// modify existing list with custom extension function
val mutableList = startingList.toArrayList()
mutableList.mapInPlace { if (it in unhappy) "Love" else it }
assertEquals(expectedResults, mutableList)
}
@Test fun testMutationIterationOfArrays() {
val otherArray = arrayOf(true, false, false, false, true)
otherArray.mapInPlace { true }
assertEquals(arrayOf(true, true, true, true, true).toList(), otherArray.toList())
}
@Test fun testMutationIterationOfPrimitiveArrays() {
val primArray = booleanArrayOf(true, false, false, false, true)
primArray.mapInPlace { true }
assertEquals(booleanArrayOf(true, true, true, true, true).toList(), primArray.toList())
}
@Test fun testMutationIterationOfListWithPrimitives() {
val otherList = arrayListOf(true, false, false, false, true)
otherList.mapInPlace { true }
assertEquals(listOf(true, true, true, true, true), otherList)
}
}
并检查您想要返回的所需提交。
基本上你在Git中执行的每个动作都存储了数据,你可以在reflog中找到它。
Git非常努力不丢失您的数据,所以如果由于某种原因您认为它有,那么您可以使用git reflog挖掘它。
这意味着您可以将其用作安全网:您不应该担心合并,变基或其他操作会破坏您的工作,因为您可以使用此命令再次找到它。
详细了解here