提交的文件不会出现在git commit,git stash和git stash pop

时间:2016-01-05 09:45:36

标签: xcode git github version-control

我对这个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

我做了很多提交,推动和切换分支,但我从来没有像这样消失在我身上。

我的文件是否可以恢复正常?我讨厌重新开始。感谢。

1 个答案:

答案 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挖掘它。

     

这意味着您可以将其用作安全网:您不应该担心合并,变基或其他操作会破坏您的工作,因为您可以使用此命令再次找到它。

     

enter image description here

详细了解here