Подтолкнул к Git, все пропало? - PullRequest
0 голосов
/ 15 марта 2012

Итак, я новичок в работе в Ruby on Rails. Я зафиксировал все и отправил на git, а затем мой проект вернулся к старой версии. Моя самая последняя версия безопасно хранится в git, но теперь все оригинальные файлы на моем компьютере исчезли и заменены более старыми версиями. Что происходит?

РЕДАКТИРОВАТЬ: подробнее:

git status
# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   modified:   .DS_Store
#   modified:   app/.DS_Store
#   modified:   app/assets/stylesheets/static_pages.css.scss
#   modified:   app/views/static_pages/home.html.erb
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   app/assets/.DS_Store
#   app/assets/images/.DS_Store
#   public/chat.png
#   public/groups.png
#   public/join-free.png
#   public/login-button.png
#   public/meetups.png
#   public/people.png
#   public/posts.png
#   public/profile.png
#   public/stream.png
#   public/streambaby.png
#   public/streamblue.png
#   public/streamlime.png
no changes added to commit (use "git add" and/or "git commit -a")
Lasers-MacBook-Pro:meetumea lasernite$ git add .
Lasers-MacBook-Pro:meetumea lasernite$ git commit -m "home page basic"
[master 49921d4] home page basic
 Committer: Laser Nite <lasernite@Lasers-MacBook-Pro.local>
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly:

    git config --global user.name "Your Name"
    git config --global user.email you@example.com

After doing this, you may fix the identity used for this commit with:

    git commit --amend --reset-author

 18 files changed, 144 insertions(+), 9 deletions(-)
 create mode 100644 app/assets/.DS_Store
 create mode 100644 app/assets/images/.DS_Store
 rewrite app/assets/stylesheets/static_pages.css.scss (100%)
 rewrite app/views/static_pages/home.html.erb (100%)
 create mode 100644 public/chat.png
 create mode 100644 public/groups.png
 create mode 100644 public/join-free.png
 create mode 100644 public/login-button.png
 create mode 100644 public/meetups.png
 create mode 100644 public/people.png
 create mode 100644 public/posts.png
 create mode 100644 public/profile.png
 create mode 100644 public/stream.png
 create mode 100644 public/streambaby.png
 create mode 100644 public/streamblue.png
 create mode 100644 public/streamlime.png
Lasers-MacBook-Pro:meetumea lasernite$ git branch
* master
  work
Lasers-MacBook-Pro:meetumea lasernite$ git push
Counting objects: 39, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (27/27), done.
Writing objects: 100% (27/27), 60.94 KiB, done.
Total 27 (delta 11), reused 0 (delta 0)
To git@github.com:lasernite/meetumea.git
   a78c8f0..49921d4  master -> master
Lasers-MacBook-Pro:meetumea lasernite$ git status
# On branch master
nothing to commit (working directory clean)
Lasers-MacBook-Pro:meetumea lasernite$ git co work
Switched to branch 'work'
Lasers-MacBook-Pro:meetumea lasernite$ git status
# On branch work
nothing to commit (working directory clean)

Затем я заметил, что все мои файлы были старыми версиями, и все мои новые изображения были удалены из общей папки. Я просто запустил rm -rf meetumea и затем клонировал свой проект из github, так что проблема решена. Я все еще хотел бы знать, что случилось.

1 Ответ

4 голосов
/ 15 марта 2012

Мне кажется, что вы создали ветку под названием "работа" до того, что вы вставили в свой вопрос.Затем вы зафиксировали некоторые изменения в основной ветке («newcommit» ниже) и отправили это.Затем вы проверили ветку "работа", которая ветвится до новых коммитов.Это означает, что он не будет содержать новые коммиты.Если бы вы снова обратились к мастеру, вы бы снова увидели ваши изменения.

newcommit (master)
  |
  |
  |                  othercommit (work)
  |                    /
basecommit------------'

Так что, если вы извлекаете «работу», newcommit не будет в этой ветке.Или, возможно, в ветви «работа» никогда не было новых коммитов, и в этом случае «работа» по-прежнему указывает на basecommit:

newcommit (master)
  |
  |
  |
  |
basecommit (work)

Так что, если вы извлекаете «работу», вы возвращаетесь до появления newcommit,Помните, что ветви в git - это просто указатели на коммиты, которые перемещаются автоматически при добавлении коммитов (а теги - это указатели, которые не перемещаются автоматически).

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