帰属意識の低迷
いつの間にか3年目を迎えました。
今の現場に来て、早1年が過ぎました。 チームメンバの離任やら離職やらで、1年足らずしか居ないのにメンバの中ではちょっぴり古参ポジションにおります。
そんな中で先日、自社の上司よりお叱りを受けました。
端的に言えば、 新入社員の日報を読んでますか?気にかけてますか? 年の近い先輩に何かしらフィードバックをもらった方が、しっくり来るんじゃないか。 というような内容でした。
今回、私は今年の東京採用の内定者研修を3回受け持ったので多少なりとも面識はあります。でも、内定者研修は限られた期間・人員だったし、入社式も任意参加だったので、現場に出て働いてる人にとってはものすごく関わりがないんですね。自社の新入社員にも関わらず。
もっと関心を持て、と言うのも難しい話です。
興味がない訳じゃないけど、毎日社内用SNSに時間を割けるはずもなく、同じプロジェクトに入ってくる他社のメンバの新卒さんとの方が過ごす時間が長いんです。面と向かって話せる人に意識が向くのは、自然の流れな気がします。
同じ現場を10年以上続けてるリーダーさんもいますが、私は1年経った今、自社に所属している意味があるのか、と疑問に思っています。 自社の中で何かしたい、と明確な何かがある訳ではありません。でも、客先常駐で働き続けるのであれば、それは他社のSESでも同じ気がします。
私は何がしたいのか。
悶々と考えているばかりで前に進めずにいます。
サイコロはいくらでも振り直せると聞いたけど、 振り直す先が見えて来ない。
memo
メモ。
Chocolatey!
Chocolateyをいまいち理解してなくて紹介されてからも使ってなかったけど、
思っていた以上に便利そうでびっくりした。
Chocolateyの使い方
まず、コマンドプロンプトに下記のコマンドを打ち込んでインストールします。
※最新のコマンドはChocolatey Galleryで確認してね※
C:\> @powershell -NoProfile -ExecutionPolicy unrestricted -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin
インストールされたかを確認する
C:\> chocolatey version
下記のようにバージョン情報が出力されていればインストールできてます。
C:\>chocolatey version found : 0.9.8.27 name : chocolatey latestCompare : 000000000000.000000000009.000000000008.000000000027 verMessage : Latest version installed latest : 0.9.8.27 foundCompare : 000000000000.000000000009.000000000008.000000000027
実際にインストールする
今回はSublime Text2をインストールします。
C:\> cinst sublimetext2
インストールに成功していれば下記のような出力がされます。
C:\>cinst sublimetext2 Chocolatey (v0.9.8.27) is installing 'sublimetext2' and dependencies. By install ing you accept the license for 'sublimetext2' and each dependency you are instal ling. sublimetext2 v2.0.2.2221 Downloading sublimetext2 64 bit from 'http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%202.0.2%20x64%20Setup. exe' Installing sublimetext2... sublimetext2 has been installed. sublimetext2 has finished successfully! The chocolatey gods have answered your r equest! Finished installing 'sublimetext2' and dependencies - if errors not shown in con sole, none detected. Check log for errors if unsure.
コマンド一覧
インストール
C:\>cinst packageName
アンインストール
C:\>cuninst packageName
パッケージのアップデート
C:\>cup packageName
個人PCを3月に買って以来Eclipseくらいしか入れてないので
Chocolateyを活用していきたいです。
個人的に甘そうな名前が好きです。
GitでConflictを解消できるようになりました
Gitでマージすることを覚えました(masterへの反映ではない)
pushを終えたブランチにmasterを反映させてコンフリクトが発生した場合はその解消。
多分、あらかじめブランチをmasterとマージすることによってmasterからマージする時にコンフリクトが発生しなくなるのかな。その辺は良く分かってないです。
git merge
Conflictを解消する
git merge --no-ff -
- git merge --no-ff
- fast-forwardの関係であっても、必ずマージコミットを作るオプション
- トピックブランチがあったという情報が残る
- fast-forwardとは?
- あるコミットに対してコミット履歴上で直接到達できる別のコミットをマージしようとした場合、Git は単にポインタを前に進めるだけで済ませること
- マージ対象が分岐しているわけではない
Conflictが発生
Auto-merging sample/hoge.txt CONFLICT (content): Merge conflict in sample/hoge.txt Automatic merge failed; fix conflicts and then commit the result.
- sample/hoge.txtのコンフリクトを解消しないとマージが行われない
sample/hoge.txtを開くと以下のようになっている
<<<<<<< HEAD abc def ======= abc 123 >>>>>>> abcdef....
- =======より上側がローカルリポジトリ(マージ前の状態)
- =======より下側がリモートリポジトリ(マージしたい差分)
- 自分の判断でどちらかを選択する。あるいは両方を組み合わせて最善の状態に編集する
- 編集し終えたら<<<<<<<や=======も消してから保存する
- 保存すると自動でgit addされる
git commit -a
- コミットメッセージは自動で入力されるので終了させる
git push
- pushしてブランチを公開したらマージ完了
- お疲れさまでした!
今回の一連の流れ
git merge --no-ff - git commit -a git push
便利そうなコマンド
git log でブランチとタグも見る
git log --oneline --decorate
ある変更が含まれているブランチを見つける
git branch --contains hogehoge123(リビジョン番号)
まだ良く分かってないこと
git merge --no-ff origin/master git merge --no-ff -
- origin/masterとか指定したブランチとマージできる(はず)
- ハイフンの場合は直前に操作していたブランチをマージ(???)
参考にしたページ
Gitコマンドにまつわるetc.
Gitを使うようになったけどいまいちコマンドが覚えきれない、ページが散在してて探しにくい、などなどの理由により一度まとめてみます。
Eclipseを使うときもなるべくならプラグインよりコマンドの方が良いみたいです。
でも、プラグインは基本的に便利だから手放したくない…葛藤。
主なGitコマンド
クローンを作成する
git clone <remote repos path>
ブランチの切り替え
git checkout master
上記はmasterに対する切り替え
masterとは?
- リポジトリに最初のコミットを行った際に作成されるブランチのこと
- 常に最新の情報が保たれている
ブランチの作成と新規ブランチへの切り替え
git checkout -b <new-branch>
- ブランチを作成するときはmasterを最新化(pull)してから行う
追跡ブランチの作成
git checkout -t origin/<branch>
- モートブランチと直接のつながりを持つローカルブランチのこと
- git push を実行すると、Git は自動的にプッシュ先のサーバーとブランチを判断する
- git pull を実行すると、リモートの参照先からすべてのデータを取得し、対応するリモートブランチの内容を自動的にマージする
ブランチの最新化
git pull
- 現在のブランチの最新化が行われる
指定したブランチの内容を取り込む
git pull origin <remote>
現在のブランチの指定したリモートにおけるコピーをフェッチして、 それを現在のブランチに即時マージする
- git fetch
コマンドを実行し、続いて git merge origin/<current-branch>. コマンドを実行するのと同等 - pull = fetch + merge
- git fetch
フェッチ
- マージ
- ブランチを統合するコマンド
履歴の保存(commit)
git add <path> git commit -m "commit message"
- git add
- コミットするファイルを追加する
-m
- コミットメッセージを指定してコミットするオプション
コミットは小刻みに行うこと
リモートリポジトリにブランチを作成 / ブランチに変更内容を反映
git push <repository> <refspec>
- repository:remote add コマンドで追加したリポジトリ名やURLを直接指定することが可能
- refspec:ブランチ名などが指定できる
ブランチの変更をmasterに反映(merge)
git checkout master git pull git merge <branch> git push <repository> <refspec>
- pushすることで最新のmasterブランチを公開
比較的使うコマンド
ブランチを一時的に保存(stash)
git stash
- git stash save "message":メッセージを付加することも可能
git pull を引数無しで実行させる(追跡)
git branch --set-upstream-to=origin/<branch> branch_name
- やむを得ずresetした時などにTracking解除されていたりする
コマンドにおける位置関係
(stash) ─ commit → push → remote
参考にしたページ
Pro Git
サルでもわかるGit入門
Git チュートリアルとトレーニング_ Atlassian
git fetchの理解からgit mergeとpullの役割
Git開発フロー #1
Java SE 7 Programmer I 取得
流石にもう逃げられないところまで来てしまったので、 腹を括って受けました。
先週1週間は暇さえあれば問題集問題集問題集…
今までもこのくらいやってたら多分一ヵ月くらい早く取得できただろう。
人間追い詰められないとやらないね。
そんなこんなで正解率80%という可もなく不可もなくな感じでした。
以下、不正解だった項目のリスト。
今後の要復習・再確認箇所ですね。