2015-08-31 3 views
1

У меня есть проект iOS на XCode. Я некоторое время отработал филиал. Я внес некоторые изменения в файл и уже некоторое время занимаюсь филиалом. Когда я перешел к старой ветке, объединил код и удалил самую последнюю ветку, я понял, что этот файл никогда не обновлялся до Git. У меня нет файла .gitignore.Git проигнорированный файл, когда GitIgnore не существует

Все мои другие файлы были нажаты, за исключением этого набора заголовков и основных файлов Objective-C. Я понятия не имею, почему код никогда не подталкивался. Я потратил немало времени на это, и потерять этот обновленный файл - отличный удар для меня. Когда я перешел к более старой фиксации из удаленной ветви, файл взял свою первоначальную форму.

Что могло быть причиной этого, и есть ли у меня для этого решение?

UPDATE

Это не мое первое родео с мерзавцем. Позвольте мне еще раз пояснить.

Каждое совершение, которое я сделал, я использовал git add . и следил за ними с git commit и git push почтительно.

Я попытался вытащить ветку из удаленного репозитория, но файл не отражает все изменения, которые я сделал с ним, по состоянию на мой последний коммит.

+0

Во-первых, были ли эти файлы, которые не были объединены в новые файлы? Вам нужно сделать явный «git add» для вновь созданных файлов. –

ответ

0

Второй вопрос - как получить код, который у меня был в файле, который я только что удалил.

Вот как -

Создать новую ветвь -

git checkout -b newBranch 

выполнить RefLog и получить совершающее от него -

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 

Найти коммиты, которые вы хотите, сказать 3 и 2 сверху и делают:

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

Сделайте это для всех фиксаций и вы должны иметь свою ветку обратно.

В качестве альтернативы, если вы нажали на свою ветку, вы можете просто вернуть ее обратно.

git pull origin branchName 
+0

Я уже пытался это точное решение, и файл не отражает мои последние изменения в файле. – jason328

+0

Вы совершили эти изменения? Как я уже сказал, вам нужно явно создать новые файлы для совершения. –

+0

Если вы создаете файл и добавляете его один раз. Любые новые изменения для него будут поставлены для немедленного добавления. Однако, если это новый файл, то указанное выше не относится к нему. –

Смежные вопросы