Gitのブランチ練習
Gitのブランチを使いましょう。
ブランチを作成しましょう。
まずブランチを作成してみます。
C:\>git branch lesson-branchブランチが作成されたことを確認します。
C:\>git branch lesson-branch * masterlesson-branchというブランチが追加されました。現在のブランチ(先頭に * が表示されているもの)は、masterのままです。
ブランチを切り替えましょう。
まずブランチを切り替えます。
C:\>git checkout lesson-branchブランチが切り替わったことを確認します。
C:\>git branch * lesson-branch masterブランチで作業しましょう。
「about-branch.txt」というファイルを作ることにします。適当な内容で構いません。
C:\>notepad about-branch.txt次の内容で保存します。
Hi, I'm writing about branch.gitの監視対象に追加し、コミットします。
C:\>git add about-branch.txt C:\>git commit -m "Writing about-branch.txt" [lesson-branch 2de4877] Writing about-branch.txt 1 files changed, 1 insertions(+), 0 deletions(-) create mode 100644 about-branch.txtブランチをmasterに戻しましょう。
ブランチをマスターに戻します。
C:\>git checkout master Switched to branch 'master'ファイルを一覧してみます。
C:\>dir /b readme.txtlesson-branchブランチで「about-branch.txt」を作成しましたが、masterブランチに戻ると、こちらには「about-branch.txt」はないままになっています。
ブランチをマージしましょう。
lesson-branchブランチでの変更点を、masterに反映します。
C:\>git merge lesson-branch Updating 6c5f993..2de4877 Fast forward about-branch.txt | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) create mode 100644 about-branch.txtファイルを一覧してみます。
C:\>dir /b about-branch.txt readme.txtlesson-branchブランチでの変更点である「about-branch.txtの追加」が、masterブランチに反映されました。
ブランチを削除しましょう。
lesson-branchブランチを削除します。
C:\>git branch -d lesson-branch error: The branch 'lesson-branch' is not an ancestor of your current HEAD. If you are sure you want to delete it, run 'git branch -D lesson-branch'.ブランチでの変更で、masterに反映されていない分があるので、削除できませんでした。まずマージして、それから削除します。
C:\>git merge lesson-branch C:\>git branch -d lesson-branch Deleted branch lesson-branch (was 944166d).lesson-branchブランチがなくなっていることを確認します。
C:\>git branch * masterブランチを強制削除しましょう。
もう一度ブランチを作り「masterに反映されていない分がある」状態まで進めます。
C:\>git branch lesson-branch C:\>git checkout lesson-branch Switched to branch 'lesson-branch'C:\>echo Lesson again. > lesson.txt C:\>git add lesson.txt C:\>git commit -m "Create lesson.txt" [lesson-branch 210995d] Create lesson.txt 1 files changed, 1 insertions(+), 0 deletions(-) create mode 100644 lesson.txt
C:\>git checkout master Switched to branch 'master'
同じ状態になっていることを確認します。
C:\>git branch -d lesson-branch error: The branch 'lesson-branch' is not an ancestor of your current HEAD. If you are sure you want to delete it, run 'git branch -D lesson-branch'.強制削除します。小文字の -d オプションの代わりに、大文字の -D オプションを指定します。
C:\>git branch -D lesson-branch Deleted branch lesson-branch (was 210995d).lesson-branchブランチがなくなっていることを確認します。
C:\>git branch * masterまとめ
Gitのブランチの一覧、追加、削除は、以下のコマンドで行います。
git branch [option]Gitのブランチの切替は、以下のコマンドで行います。
git checkout <ブランチ名>Gitのブランチのマージは、以下のコマンドで行います。
git merge <ブランチ名>ブランチは、並行していくつかの作業を行う時に役立ちます。例えば、ある人が昨日の追加を行い、ある人はバグの修正を行い、ある人はドキュメントの更新を行うと言ったときに、それぞれにブランチを作って作業をすれば、終わったものから「master」に反映してリリースすることができます。
メモ:ブランチはコミットしてから切り替えましょう。
ブランチを切り替える時に、次のようなエラーが出ることがありました。
C:\>git checkout master error: You have local changes to 'about-branch.txt'; cannot switch branches.現在のブランチにコミットしていない変更があるので、ブランチを切り替えられなかったようです。コミットをします。
C:\>git commit -a -m "Append merit description."ブランチをマスターに戻します。
C:\>git checkout master Switched to branch 'master'今度はきりかえられました。こうならず「M about-branch.txt」のように表示されるだけで、切り替わることもありました。違いがよく分かっていません。
2008-12-01 (via gkojay) (via kondot) (via lunaryue) (via rightstaff) (via kuzu)
…優れたエンジニア10人雇うのは、優秀なexecutive1人雇うよりもっともっともっと大変なのであった。
というか、不可能に近い。
探し出すだけでも大変。「シリコンバレーのエンジニア」といっても、かなり使えないレベルの人がうようよいる。そしてジョブマーケットにいる多くの人はそういう人材。(考えてみれば当然です。多くの会社が優れたエンジニアを欲しがっているので、そういう人材が大量に市場に溢れているはずがない。決していなくはないが。しかし、普通に募集をかけた場合の応募者のS/N比は超低い)。
そして、面接してオファーを出しても断られがち。まぐれで一人採用できても、つぎの人を取るのに手間取っているうちに辞められて、振り出しにもどる、とか。
「そんなハイエンドの人じゃなくていいです」
と思うかもしれないが、「普通のエンジニア」をとるのだったら、シリコンバレーに来る必要はない。「普通の人」でもシリコンバレー相場で高給。何度も言っているが、別にシリコンバレーだからと言って普通の人も優秀なわけではない。
On Off and Beyond: 日本企業のアメリカ進出:組織づくりはトップから雇用する
うん、これは実際に僕が昔体験したことと、現在各所で見聞きすることと同じだ。巨大企業に入っていようが使えないエンジニアは本当に使えないし、そういった使えないエンジニアは実際かなり多い。だから学生のうちに才能を見出して夢を見させて買い叩くY combinatorモデルはかなり投資回収率が高かったりするのだ。
ITエンジニアについて、シリコンバレーはトップティアは真に世界一だと思うが、それより下は東京のエンジニアの方が平均的なスキルが高いと思うよ。
(via kashino) (via yuco) (via puuq)
(via otsune)
(via kkk6)