2015-08-31 146 views
1

我在XCode上有一个iOS项目。一段时间以来,我一直在关闭一个分支。我对文件进行了特别的改变,并且已经在一段时间内提交了该分支。当我搬到一个旧的分支,合并代码,并删除最近的分支,我意识到这个文件从未更新到Git。我没有.gitignore文件。当GitIgnore不存在Git忽略文件

我所有的其他文件都被推送,除了这个特定的头文件和主要的Objective-C文件。我不知道为什么代码从未被推高。我花了相当多的时间来处理这个问题,失去这个更新的文件对我来说是一个很大的打击。当我从被删除的分支移到较旧的提交时,该文件采用了其原始形式。

这可能是什么原因造成的,有没有人为我解决这个问题?

UPDATE

这不是我第一次圈地使用Git。让我进一步解释。

我做出的每一个承诺我已经使用了git add .,并且分别跟进了git commitgit push

我试图从远程存储库中取出分支,但该文件并未反映我对最近的提交所做的所有更改。

+0

首先,这些文件没有合并到新文件中吗?你需要为新创建的文件做一个明确的'git add'。 –

回答

0

第二个问题 - 我如何获取我刚才删除的文件上的代码。

下面是如何 -

创建一个新的分支 -

git checkout -b newBranch 

执行引用日志,并从中获得提交 -

git reflog | grep commit 

现在,你应该得到这样提交列表这 -

d2456b7 [email protected]{1}: commit (merge): Merge 
354dce1 [email protected]{3}: commit: 4 
8c01ff7 [email protected]{6}: commit: 3 
1ab4588 [email protected]{7}: commit: 2 
3c419d5 [email protected]{8}: commit (initial): 1 

找到你想要的,说32从上面做的提交:

git cherry-pick 1ab4588 
git cherry-pick 8c01ff7 

这样做对所有的提交,你应该有你的分支回来。

另外,如果你推动你的分支,你可以把它拉回来。

git pull origin branchName 
+0

我已经试过这个确切的解决方案,并且该文件没有反映我对该文件的最新更改。 – jason328

+0

你提交了这些更改吗?正如我所说的,你需要明确地提交新文件进行提交。 –

+0

如果您创建一个文件并添加一次。对其进行的任何新更改都将立即进行添加。但是,如果它是新文件,则上述内容不适用于此文件。 –