Потерял файл с помощью git bash - PullRequest
0 голосов
/ 17 сентября 2018

Последние команды, которые я выполнил с помощью git bash, привели к тому, что содержимое моего файла .css было полностью удалено .. файл все еще там, просто пустой. Я новичок в Git и понятия не имею, что случилось.
У меня есть все мои команды, вот они:

git branch modify  
git checkout modify  
git status  
git add .  
git commit -a -m "my message"  
git push origin modify  
git push origin master  
git push origin master  
git branch -D contact_nav  

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

У меня нет резервных копий, это был первый коммит, который я сделал после всех моих изменений в файлах. Только css пропал, мои html и javascript со всеми их новыми изменениями все еще там.

Ответы [ 3 ]

0 голосов
/ 17 сентября 2018

Ничего не передается в reflog?

$ git reflog | grep contact_nav
0 голосов
/ 17 сентября 2018

Вот последовательность действий, которые Git будет выполнять с вашими командами:

git branch modify
#Create a branch 'modify'

git checkout modify
#Chekout to branch 'modify'

git status
#See the status of changed files since your last pull or clone

git add .
#add all the changed files in your current directory to the staging area. Now Git 
#starts tracking these files.

git commit -a -m "my message"
#Commit the tracking area changes and give it a revision (SHA1). Here -a is not needed because you have already run git add command.

git push origin modify
#Push to modify. This will push all the changes from the staging area to branch modify.

git push origin master
#Now you are trying to push your changes to the master branch. However, since the changes 
#are already pushed to the staging area, there is no new change to push to master.

git push origin master
#Same as the previous command

git branch -D contact_nav
#Now you are force deleting branch 'contact_nav'

Что вам нужно сделать, чтобы вернуть изменения в ваш css-файл:

git branch
#This will tell which branch you are in. If it shows 'modify' as green then you are 
#in that branch. If not, then use command `git checkout modify`

git log
#Check if it shows your commit with a message "my message" as latest change.
#If you do not see such commit then you made your css change in some different branch. In this case, you need to make those css changes here in this branch. Once you edit the css file, again you need to execute commands 
#git add .
#git commit -m "my message"
#git push origin modify


#In case you see your .csv commit then you need to run below command
git reset --hard <SHA1 of your change with commit message "my message">
#This will bring your local to the change where you added content to .csv file. 
#And you have your changes back.
0 голосов
/ 17 сентября 2018

Первая команда, git checkout modify, могла бы перезаписать содержимое файла .css, если бы указанный файл был пуст в этой ветке.
Другие ваши файлы, если бы они были частными и не имели версий в этой ветке, были бы проигнорированы командой checkout: они остались бы в рабочем дереве как есть, готовые для добавления и фиксации, что вы и сделали.

Проблема в том, что если содержимое css никогда не было хотя бы добавлено в индекс, оно теряется, если только ваш редактор / IDE не имеет его в своей локальной истории.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...