Gitコマンドのオンライン練習
Gitの誕生
2005年4月、Linuxの作者であるリーナス・トーバルズが2週間かけてC言語で分散型バージョン管理システムを書いたとき、Gitは誕生しました。それがGit 1.0であり、大きないじめっ子たちはそうやってコードを書きました。SVN、ClearCaseなど。しかし、これらのツールは遅いか有料で、リーナス・トーバルズの趣味ではありません。ラリーはリーナス・トーバルズを説得して、Linuxカーネルのソースコードの管理にBitKeeperを使うようにし、2002年から2005年の間、Linuxカーネル開発チームはBitKeeperを使ってLinuxのソースコードを管理するようになりました。しかし、開発の過程で、リーナス・トーバルズにはアンドリュー・ドレイパーという小さな友人がいて、彼は落ち着きを失い、BitKeeperのリポジトリに接続できる簡単なプログラムを書いてしまったのです。BitKeeperの著作権者であるLarry McEvoyは、Andrew DraperがBitKeeper内部で使われているプロトコルをリバースエンジニアリングしていると考え、BitKeeperの使用許諾を無償で撤回することにしたのです。BitKeeperの使用許諾は撤回された。この分散型バージョン管理ツールがなぜGitと呼ばれているのかについて、Linus Torvaldsは皆に納得のいく説明をしなかったが、多くの開発者がGitに合理的な説明をするよう試みている。グローバル・インフォメーション・トラッカー もしあの時、BitMoverがこの問題を強引に解決しなかったら、これほど優れた分散型バージョン管理ツールを見ることはなかったんじゃないだろうか。2016年5月11日にBitKeeperがApache 2.0ライセンスでオープンソース化したことを発表している(ニュースリンク http://www.solidot.org/story?sid=48171 )が、BitKeeperがオープンソース化を発表したときに上司がどう感じたのか気になるところである。
Gitのメリット
Gitは、導入当時、最も人気のある分散型バージョン管理ツールになりました。2008年4月には、バージョン管理、特にコードとコンテンツの保存にGitを使用する共有ウェブホスティングサービスであるGitHubが開始されました。Gitは、次のような利点を持つ分散型バージョン管理ツールです。
- 分散型バージョン管理ツールは、従来の集中型バージョン管理ツールとは異なり、インターネット接続を必要とせず、各コンピュータが完全なバージョンリポジトリとなる。
- Gitは数万人規模の開発にも対応できます。私が多くを語らずとも、GitHubのオープンソースプロジェクトを見ればわかると思います。 優れたパフォーマンス 先ほど、リーナス・トーバルズ氏がCVSやSVNなどのバージョン管理ツールを使いたがらないのは、パフォーマンスが悪いからだと述べました。そこでリーナス・トーバルズは、Gitを開発したときに、バグを取り除き、Gitが効率的に動作するようにしたいと考えました。私が前の会社で開発者だった頃、SVNに深く毒されていましたが、それでも会社がGitへの移行に消極的だったのは、プロジェクトマネージャーがGitを使ってくれないからでしょう。
- プロジェクトの安全性を確保する。SVNの前にCVSという集中型バージョン管理ツールがあったことは知っています。CVSの問題の1つは、時々ファイルがどうしようもなく消えてしまうことです。開発者の皆さんは、自分のプロジェクトから突然ファイルが消えてしまったら、汗をかかないことはご存知でしょう。そこでGitは、汎用的な暗号ハッシュ関数であるSHA1を使ってデータベース内のオブジェクトに名前を付け、ファイルの安全性を確保するのです。
- ブランチの上手な使い方。Gitを使ったことがある人なら誰でも、ブランチがいかに素晴らしいものかを知っています。これは、私たちのプロジェクトでは非常によくあることです。プロジェクトに携わったことのある人なら誰でも知っていることです。ブランチの使い方については、この記事の後半で詳しく説明します。
オンラインでGitコマンドを練習する
https://learngitbranching.js.org
このサイトでは、Gitの全コマンドをレベル形式で使いながら練習することができます。
全体のコンテンツは、メイン操作とリモート操作の2つの記事に分かれています
トピックはいくつかのサブトピックに分かれており、サブトピックの下にはいくつかのレベルが配され、それぞれがコマンドに対応しています。各レベルをクリアすることで、各コマンドに習熟することができます。
レベル使用ガイド
デモの様子
メイン操作編で基本コマンド編の第1階層に行くには
- レベル画面に入ると、そのレベルのコマンドの紹介が表示されます。2つのボタンがあり、赤いボタンは前の画面に戻ること、緑のボタンは次の画面に行くことを意味します。
- 次の画面へ 右側にはコマンドの図があり、コマンドボタンをクリックすると、コマンドが実行された後の効果が図に表示され、コマンドをより明確に理解することができます。 コマンドと図に慣れたら、ハンズオンのステップに進みます。 デモはここまでです。緑色のボタンをクリックして、ハンズオンのステージに進んでください
ハンズオン
-
以下のように、ハンズオン画面へ移動します。
1.1. 赤いマーカーは、コマンド実行の効果を表しています
1.2. 最終結果は緑色で表示されます
1.3. 黄色で表示されている部分が実行コマンド領域で、Gitコマンドを実行することができます。緑色の部分をクリックすると、実行コマンド領域を大きくして隠すことができます。 - コマンドを実行したときの効果は、以下のとおりです。 ご覧の通り、緑の部分を隠して "git commit" を実行したところ、画像はその実行の効果を表しています。
- パス画面は、以下の通りです。 インターフェイスの情報は、大まかに説明すると、条件を達成するために必要なパスコマンドの数、使ったコマンドの数、赤いボタンはインターフェイスを閉じること、緑のボタンは次のレベルに進むことを意味します
さて、これでレベルの入り方とコマンドの操作方法はすべて網羅されたことになります。
ツールバー
gitコマンドを操作していると、どうしても間違えたり、レベルの進行状況をリセットしたり、レベルの答えを見たりしたくなります。このときは、図のようなツールバーを使う必要があります。インターフェースの右下、疑問符をクリックするとツールバーが展開します。
- levels;クリックするとレベルマップが表示され、各レベル、どのレベルをクリアしたか、どのレベルまでクリアしたか、どのレベルをクリアしていないかを確認できます。インターフェースは図1参照。
- 解答;クリックすると、現在のレベルの解答が表示されます。写真のように 赤いボタンが閉じていて、緑が表示OKの意味です。閲覧が確実な場合は、このようにgitコマンド入力画面にコマンドを入力している状態で、次々と答えが表示されます。
- reset; レベルをリセットし、最初に戻します。
- 元に戻す(Undo):前のステップを取り消す
- 目的;最終的な目標、コマンドを実行するための考え方
- ヘルプ;全てのgitコマンドと、このサイトの特別なコマンドのいくつかを見ることができます。
これでオンライン練習用gitコマンドサイト全体は終了です。
クリアウォーター
関連
-
[解決済み】Git Extensions。Win32 エラー 487: cygwinのヒープ用に領域を確保できなかった、Win32エラー0
-
git commits with an error: 更新が拒否されました。現在のブランチの先端が、このブランチより後ろにあるためです。
-
[解決済み] リモートの <ブランチ名> とマージするように設定されていますが、そのような参照は取得されませんでしたか?
-
[解決済み] fatal: bad revision "とはどういう意味ですか?
-
[解決済み] GitのFETCH_HEADとはどういう意味ですか?
-
[解決済み] git clone が github 上で永久にハングアップする
-
[解決済み] git am: パッチフォーマットの検出に失敗しました
-
[解決済み] git mv` とは対照的に、git コピーファイル
-
[解決済み] GITで2つのブランチをマージする
-
[解決済み] GitHub - github 443 windowsへの接続に失敗しました/ gitHubへの接続に失敗しました - エラーなし
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】fatal: 有効なオブジェクト名ではない: 'master'
-
[解決済み] 複数のコミットをチェリーピックする方法
-
[解決済み] Gitのフォルダ構造で変更・追加されたファイルのみをエクスポートする機能
-
[解決済み] fatal: 'gh-pages' という名前のブランチは既に存在しています。
-
[解決済み] gitk: コマンドが見つかりません
-
のエラーが発生しました。以下の追跡されていない作業ツリーファイルは、チェックアウトによって上書きされます。
-
git pull prompts なぜこのマージが必要なのかを説明するコミットメッセージを入力してください。
-
fatal: 作業ツリーディール 'xxxx' を作成できませんでした。パーミッションが拒否されました
-
[解決済み] GitとDropboxを一緒に使うには?[クローズド]
-
[解決済み] 別のブランチから変更を取得する方法