删除了github分支。但轨道生成的控制器仍然在Master中?

时间:2016-03-13 18:31:26

标签: ruby-on-rails ruby git github devise

我对编程有点新意。我可能没有输入正确的关键字,但我找不到任何可以回答这个问题的内容。另外GitHub教程没有涵盖这个(据我所见)。

所以安装了rails设备gem,一切都运行良好。扩展到用户注册邮件程序。我决定尝试使用设备控制器。所以我$ rails生成设计:控制器确认。

我在那里做了什么并完全搞砸了我的应用程序。无论如何我决定删除分支。我用$ git branch -D user-sign-up-mailer

检查了主控和删除分支 令我惊讶的是,我在分支中生成的控制器在我的主人身上。现在我觉得我必须扭转这一点..但我的问题是做错了什么?为什么这些控制器来自掌握?这是来自终端的流程

那么如何反转它并仅销毁设备控制器?

Mac (user-sign-up-mailer) $ rails generate devise:controllers confirmations
Running via Spring preloader in process 19574
      create  app/controllers/confirmations/confirmations_controller.rb
      create  app/controllers/confirmations/passwords_controller.rb
      create  app/controllers/confirmations/registrations_controller.rb
      create  app/controllers/confirmations/sessions_controller.rb
      create  app/controllers/confirmations/unlocks_controller.rb
      create  app/controllers/confirmations/omniauth_callbacks_controller.rb

如果您尚未手动执行某些设置:

确保您在routes.rb中为生成的控制器覆盖了重写路由。   例如:

Rails.application.routes.draw do
  devise_for :users, controllers: {
    sessions: 'users/sessions'
  }
end
Mac (user-sign-up-mailer) $ git branch -D user-sign-up-mailer
error: Cannot delete the branch 'user-sign-up-mailer' which you are currently on.
Mac (user-sign-up-mailer) $ git checkout master
M   app/models/user.rb
Switched to branch 'master'
Your branch is up-to-date with 'origin/master'.
Mac (master) $ git branch -D user-sign-up-mailer
Deleted branch user-sign-up-mailer (was bdd7590).
Mac (master) $ git status
On branch master
Your branch is up-to-date with 'origin/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:   app/models/user.rb

Untracked files:
  (use "git add <file>..." to include in what will be committed)

    app/controllers/confirmations/

no changes added to commit (use "git add" and/or "git commit -a")
Mac (master) $ 

2 个答案:

答案 0 :(得分:0)

从外观上看,您从未将文件添加或提交到您的分支机构。这意味着git不了解它们。这就是为什么他们仍然在你的master分支上。

您可以删除列为未跟踪的任何文件,然后您可以执行$ git reset --hard删除自上次提交更改以来的任何更改。

答案 1 :(得分:0)

您可以通过将'generate'替换为'destroy'来销毁您生成的任何内容,如下所示:

rails destroy devise:controllers confirmations

此外,这个site在开始使用Git时帮了我很多忙。合并更改后切换回主分支时,请务必进行硬重置(替换本地更改)。