消したいブランチ名が「hoge」だとしたら。
まずはローカルブランチを削除
$ git branch -D hoge
次にリモートブランチを削除
$ git push origin :hoge
「:hoge」のコロンの意味やgit pushの実体に関する解説は下記ページが神分かりやすい。
http://shoma2da.hatenablog.com/entry/2014/03/08/234523
消したいブランチ名が「hoge」だとしたら。
まずはローカルブランチを削除
$ git branch -D hoge
次にリモートブランチを削除
$ git push origin :hoge
「:hoge」のコロンの意味やgit pushの実体に関する解説は下記ページが神分かりやすい。
http://shoma2da.hatenablog.com/entry/2014/03/08/234523
DQLではMySQLのDATE_FORMATが使えないので生クエリを発行してみた。
例えばブログなどの投稿記事を男女別、日別でカウントを取りたいとすると
雰囲気下記のような感じになる。
// ファイルの先頭で宣言 use Hoge\FugaBundle\Entity\Post; use Doctrine\ORM\Query\ResultSetMapping; ... // 関数内 $em = $this->getDoctrine()->getManager(); // 何日前の投稿分まで集計するか $pastRange = date('Y-m-d', strtotime('-16 days')); $sql = "select date_format(p.createdAt, '%Y-%m-%d') as date, p.sex as sex, count(p.id) as cnt from posts as p where p.deletedAt is null and p.status in (1, 2) and p.createdAt >= ? group by date, sex"; $rsm = new ResultSetMapping(); $rsm->addEntityResult('HogeFugaBundle:Post', 'p'); $rsm->addScalarResult('date', 'date'); $rsm->addScalarResult('sex', 'sex'); $rsm->addScalarResult('cnt', 'cnt'); $query = $em->createNativeQuery($sql, $rsm); $query->setParameter(1, $pastRange); // FOSRestBundleを用いてjsonでレスポンスを返却する。 $view = $this->view($query->getResult(), 200)->setFormat('json'); return $this->handleView($view);
これでDQLに無い関数も利用出来るようになった。
おまけ。曜日、時間帯、男女別ごとにカウントを取るSQL。
$sql = "select date_format(p.createdAt, '%w') as day, date_format(p.createdAt, '%H') as hour, p.sex as sex, count(p.id) as cnt from posts as p where p.deletedAt is null and p.status in (1, 2) and p.createdAt >= ? group by day, hour, sex"; $rsm = new ResultSetMapping(); $rsm->addEntityResult('HogeFugaBundle:Post', 'p'); $rsm->addScalarResult('day', 'day'); $rsm->addScalarResult('hour', 'hour'); $rsm->addScalarResult('sex', 'sex'); $rsm->addScalarResult('cnt', 'cnt');
うん。楽しい。
createNativeQuery()の詳細は下記公式を参照されたし。
http://doctrine-orm.readthedocs.org/en/latest/reference/native-sql.html
ためのめちゃくちゃ便利な関数を見つけたのでメモ。
■TIMESTAMPDIFF
フォーマット
TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)
日付または日付時刻式 datetime_expr1 および datetime_expr2 間の整数の差を戻す。結果のユニットは、unit 引数によって提示される。
unit に指定出来る引数は下記の通り。
FRAC_SECOND 、SECOND 、MINUTE 、HOUR 、DAY 、WEEK 、MONTH 、QUARTER 、YEAR
※上記引数には「SQL_TSI_」のプレフィックスを付加することも可能。
例)SQL_TSI_SECOND(SECONDと同等)
下記SQLの例。この場合二つの日付の差が秒数で返却される。
select timestampdiff(SQL_TSI_SECOND, insert_date, update_date) from posts;
これめちゃくちゃ便利ですわ。
下記URLのstackさんを参考にやってみた。っていってもほぼそのまんまだけど。
■constants.js(ログインが必要なページ(URI)をここで定義しておく)
app.constant('requireAuth', [ '/admin/dashboard' ]);
■app.js
app.run(['$rootScope', '$location', 'auth', 'requireAuth', function($rootScope, $location, auth, requireAuth) { // login check $rootScope.$on('$routeChangeStart', function(event) { if (requireAuth.indexOf($location.path()) > -1 && !auth.isLoggedIn()) { // ログインページに飛ばす event.preventDefault(); $location.path('/login'); } }); }]);
■factories.js
app.factory('auth', function(){ var user; return { setUser: function(aUser) { user = aUser; }, isLoggedIn: function() { return (user) ? user : false; } } });
■controllers.js(ログインが必要なコントローラーにて)
var controller = function($scope, $location, auth) { $scope.$watch(auth.isLoggedIn, function(value, oldValue) { if (!value && oldValue) { // ログインページに飛ばす $location.path('/login'); } }, true); }
こんな感じでなかなかよさ気に実装することが出来た。
ただしこのままだとページをリロードするとログアウトしてしまうため、そこは$cookieなどをうまく利用してログイン状態を維持しておくのがベター。
メモ。
※自己責任で。
リモート上とローカルが同じ状態であることが前提。
また手順でコミットを消すと、そこで追加したファイルは削除されるので後で手で戻す必要がある。
まずリモート上のhistoryを遡って取得する。
例)4個遡る
git rebase -i HEAD~4
下記のようにpick行が表示される。
pick 6f6e387 modify pick abc7e07 modify pick c7fd962 modify pick 76a95b7 modfiy # Rebase 27fda5c..76a95b7 onto 27fda5c # # Commands: # p, pick = use commit # r, reword = use commit, but edit the commit message # e, edit = use commit, but stop for amending # s, squash = use commit, but meld into previous commit # f, fixup = like "squash", but discard this commit's log message # # If you remove a line here THAT COMMIT WILL BE LOST. # However, if you remove everything, the rebase will be aborted. #
消したいコミットの行を削除後、保存して閉じる
※全部削除してしまうとキャンセルとみなされてしまうため1行は残すこと。
下記のメッセージが表示されれば成功
Successfully rebased and updated refs/heads/master.
下記コマンドで消えていることを確認。
git log
リモートにpushする。
git push origin +master
以上で完了。
pickを削除して保存した際、Successにならなかった場合の手順は下記URLを参照されたし。
http://pandazx.hatenablog.com/entry/2012/10/14/005716
メモ。
CSSとJSを読み込む。
<link rel="stylesheet" href="//cdn.kendostatic.com/2014.1.318/styles/kendo.common.min.css" /> <link rel="stylesheet" href="//cdn.kendostatic.com/2014.2.716/styles/kendo.default.min.css" /> <link rel="stylesheet" href="//cdn.kendostatic.com/2014.2.716/styles/kendo.dataviz.min.css" /> <link rel="stylesheet" href="//cdn.kendostatic.com/2014.2.716/styles/kendo.dataviz.default.min.css" /> <script src="//cdn.kendostatic.com/2014.1.318/js/kendo.all.min.js"></script> <script src="/angular-kendo.js"></script>
モジュールを読み込む。
angular.module('app', [ 'kendo.directives', ]);
あとは公式のDEMOでも見て好きに使えばおk。
http://demos.telerik.com/kendo-ui/
$ git config core.filemode false
設定出来ているかの確認は下記の通り行う。
$ git config -l | grep filemode