haiju's 開発メモ

開発に必要な情報を自分用にメモ

gitのリモートリポジトリの更新を確認する

久しくgitコマンドを触らなくなったのでおさらいを兼ねて

備忘録に記録。

[手順]

1. git fetch 後にdiff を取る

% git fetch origin

% git diff origin/develop

2. git ls-remote コマンドを使用する。

 リモートリポジトリの最新コミットID(HEAD)とローカルの最新コミット

 ID(HEAD)を比較しその2つが異なっていれば差分があると判断できる。

 更にリモートのコミットIDが過去に存在しないものであれば、ローカルの

 リポジトリが古い(マージしていないコミットがリモートに存在する)こと

 になる(らしい)。

% git ls-remote origin HEAD

78ddd44eb3b76017a55014f27d9f846054dfa52b HEAD

% git log -l HEAD       # or develop

commit 8741c1a1fd81e0e3620e7054f3731ad2338f25fa

% git log -l origin/HEAD      # or origin/develop

commit 8741c1a1fd81e0e3620e7054f3731ad2338f25fa

3. git remote show コマンドを使用する。

 実行結果の最終行に(local out of data)と表示されていれば

 ローカルの方が古いことになる(ブランチが複数ある場合は

 複数行表示される)

 ※ただし、リモートブランチと同名のブランチがローカルにも

  存在する場合のみ表示される。

  また、リモートブランチと異なる名前のブランチは upstream / 

  tracking branch を設定しても表示されない。

  以下はリンク先のコピペ(そのままやないかいw)。

% git remote show origin

* remote origin
Fetch URL: git://github.com/Shougo/unite.vim.git
Push URL: git://github.com/Shougo/unite.vim.git
HEAD branch: master
Remote branch:
master tracked
Local branch configured for 'git pull':
master merges with remote master
Local ref configured for 'git push':
master pushes to master (local out of date)

いくつか方法があるみたいだけど、とりあえず自分は

1の方法で確認した。

リモートの差分を更新したい場合は、以下コマンドで。

% git merge origin/develop

他のコマンドについても試してみたい。とりあえず、

参考サイトを確認しないかもなので、メモっておく。

[参考サイト]

qiita.com

 

git commitに失敗した時にHEADの1つ前にリセットしたい

git commit時に誤ってメッセージを未入力で実行してエラー

になった時の対応についてメモ。

直感でgit resetを使えばいいってのは思いついた。

git addしてしまったファイルをunstageに戻す場合について

英語でメッセージが書いてあるので、それを参考に。

[手順]

1. git status を実行し現状を確認。

% git status

On branch feature-task-xxxx
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)

modified: xxxx.php   <--- フォントが緑色に変わっている

2. git commitに失敗したファイルをunstageに戻すためHEADの1つ前に戻す。

% git reset HEAD ^

Unstaged changes after reset:

M xxxx.php

3. git status で戻ってるか確認。

% git status

On branch feature-task-xxxx
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: xxxx.php  <--- フォントが緑から赤に変わっている。

 ※stageに上がってる場合は、自分の環境はフォントが緑で、

  上がってない場合は、フォントが赤い。

[参考サイト]

qiita.com

qiita.com

 

Manjaro Fluxbox 15.12_x86-64で手動でWifiに接続する方法

Manjaroの標準でインストール?されているNetworkManagerアプレット

を使って自動接続できない場合の方法がようやく分かったので、忘れない

うちにメモφ(Φω|

[手順]

1. まずタスクバーのNetworkManagerアプレットを左クリック。

2. 接続可能なWifiネットワークのリストに自動接続できない

 ネットワークがあるか確認。

3. 見つからない場合、「非表示Wi-Fiネットワークに接続する」をクリック。

4. 「非表示Wi-Fiネットワーク」のダイアログが表示されるので、接続したい

 Wi-Fiネットワーク名にSSIDWi-FiセキュリティのリストからWPA&

 WPA personalを選ぶとパスワードを入力するformが表示されるので

 そこに、パスワードを入力。

5. ダイアログ下の「接続」ボタンをクリック。

6. 以上の手順でWifiに接続できればOK。

 できなければ他の方法を試す。自分の場合はレンタルルームのWifi

 これでいけた。

CakePHP3.xでデバッグログを出力するには?

CakePHP2.x系の呪いと思い込みのお陰で、長らく3.x系で

デバッグログを出力する方法が分からなかったけど、ようやく

分かったーwww

忘れないうちに、備忘録としてメモる(ΦωΦ)

[前提]

$this->log()を使ってログファイルを出力

[手順]

1.第1引数に固定文字列、第2引数に"debug"またはLOG_DEBUGを設定。

$this->log("デバッグログを出力", "debug");

または

$this->log("デバッグログを出力", LOG_DEBUG);

2.第1引数に固定文字列の代わりに変数を指定することも可。

$this->log($this->request->data, LOG_DEBUG);

3.デフォルトでは src/と同じ階層の logs/debug.logに出力される。

※エラーログを出力する場合には、基本的に書き方は同じ。

※デフォルトの出力先がlogs/error.logになることくらい。

※もちろん、ログレベルはdebugやerror以外にも複数ある。

[参考サイト]

blog.s-giken.net

absg.hatenablog.com

qiita.com

root以外でgit commit しようとしたら '.git/COMMIT_EDITMSG': 許可がありません

昨日のgitコマンドの続き。

仕事でgitサーバーからプロジェクトをcloneしてローカル

用に権限周りをrootから自分に修正して、git commit しようと

したら下記エラーが発生。

error: insufficient permission for adding an object to repository database .git/objects

fatal: could not open '.git/COMMIT_EDITMSG': 許可がありません

git status とか git add は問題ないのに何で?

ってことで、調べたことを備忘録としてメモ。

ネットで検索すると、Linuxサーバー上でマルチアカウントでgitを使って

いると稀に発生するエラーらしい。たしかに。初めて見たエラー。

git commitする時だけsudoをつけて実行すればいいんだが、でも

そこだけ管理者権限は使いづらいということで。

取り急ぎ設定した手順は以下。

[手順]

1. ファイルの所有者とグループを変更。

% sudo chown -R user:group .git

2. ファイル権限を変更。

% sudo chmod -R 755 .git

[参考サイト]

http://tetsuwo.tumblr.com/post/38922104151/git-error-insufficient

tetsuwo.tumblr.com

stackoverflow.com

※もちろん、根本的に修正する方法もある。

※実行環境とは別管理なので以下サイトはあとで詳しく。

[参考サイト]

d.hatena.ne.jp

www.fraction.jp

stackoverflow.com

github.com

mapopa.blogspot.jp

stackoverflow.com

stackoverflow.com

stackoverflow.com

stackoverflow.com

gitのパーミッション操作について

gitコマンドの復習。

自分のローカル開発環境なのでファイル実行権限とか

パーミッション等を変更して実行したのに、git commitは

管理者権限が必要なんだけど、何でだ?

(.git以下のindexの実行権限が644だった)

と言うわけで、調べてみた。

[パーミッション操作]

1.パーミッションの変更を無視する設定

1-1.設定する。

% git config core.filemode false

1-2.確認する。

% git config -l | grep filemode

2.gitに対して明示的にパーミッションを教える

2-1.実行権限を付与する場合

% git update-index --add --chmod=+x [filename]

2-2.実行権限を解除する場合

% git update-index --add --chmod=-x [filename]

[参考サイト]

qiita.com

qiita.com

gitコマンドでgit上のファイルに実行権限を付与する方法 - ただの覚書

maku77.github.io

git:パーミッションを調整する | nabeshin's blog

 

Manjaro Fluxbox 15.12_x86-64でVisual Studio Codeを起動する

まだF#のIonide環境構築で盛り上がってる時には、Visual Studio Codeを

よく使っていた記憶があるのだが、最近、全く触ってないのでターミナル

から起動する方法もすっかり忘れたwww(ΦωΦ;)

苦手なフロントエンドを勉強するにあたって、Atom Editorを使うみたい

だけど、そこはVisual Studio Codeでもよくね?

ってことで自分用に備忘録としてメモφ(ΦωΦ)

これを機会にまた使い始めたいし、Ionideのアップデート状況を確認して

他の言語でも使ってみようと思う。

[起動方法]

1. ターミナルで、codeと入力すると起動する。

% code

[参考サイト]

Visual Studio Code - ArchWiki

www.youtube.com

aur.archlinux.org

code.visualstudio.com

qiita.com