Git&GitHubのクイックスタート
記事ディレクトリ
1.Gitとバージョン管理の概念
-
Gitは無料のオープンソース分散バージョン管理ツールです
-
バージョン管理は、特定の履歴バージョンを表示または変更するために、ファイルのコンテンツの変更を記録するツールです。
-
バージョン管理ツールの分類:
(1)一元化されたバージョン管理ツール
すべてのファイルのリビジョンを保存する単一の集中管理サーバーがあります。スタッフはこのサーバーに接続して履歴バージョンを表示または変更する必要があります。欠点は、サーバーに障害が発生した場合、すべてのスタッフが更新または表示を送信できないことです。リビジョン履歴バージョン、共通SVNなど
(2)分散バージョン管理ツール
各ホストはサーバーのようにファイルリビジョンを保存でき、他のホストが自分のホストから履歴バージョンを表示およびリビジョンできるようにします
-
一元化されたバージョン管理ツールは、ファイルの各バージョンの違いを保存し、ロールバックバージョンはバージョンのバージョンである必要があります。
-
分散バージョン管理ツールは、すべての履歴バージョンのインデックスを保存し(必要なディスク容量が少ない)、ロールバックバージョンはインデックスを介して直接ロールバックできます。
第二に、Gitのインストールプロセス
-
公式ウェブサイトにアクセスしてhttps://git-scm.com/をダウンロードしてください
-
インストールプロセスの次のすべてのステップ(デフォルトを使用)
-
デスクトップまたはディスクディレクトリを右クリックし、[Git Bash Here]をクリックして、Gitターミナルを開きます。
3つ目は、Gitのローカル構造とローカル倉庫の初期化です。
- Gitのローカル構造
- ローカル倉庫を初期化します
(1)Gitのローカル構造としてディスク上にGitResp(カスタム名)フォルダを作成します
(2)Gitターミナルを開きます
①GitのコマンドはLinuxと同じです
i。Gitバージョンを表示する
ii。画面をクリアします
iii。署名(ユーザー名と電子メール)を設定します
②地元倉庫の初期化
i。作成したローカルウェアハウスのフォルダを入力し、右クリックしてターミナルを開きます
ii。.gitフォルダー(非表示)がこのフォルダーの下に作成されます
③Gitの局所構造の詳細な紹介
第四に、コードホスティングセンターの導入
ローカルライブラリとリモートライブラリ間の相互作用の分類:
1.チーム内のコラボレーション
2.チーム間のコラボレーション
ホスティングセンターの分類:
(1)ローカルエリアネットワーク環境の場合:GitLabサーバーを構築できます
(2)インターネット環境の場合:GitHubまたはGitee(Code Cloud)を使用できます
5、Gitで一般的に使用されるコマンド
- コマンドの追加とコミット
キャッシュにファイルを追加し、ローカルライブラリに送信するために使用されます
(1)ワークスペースにDemo.txtファイルを作成します
(2)作業領域のファイルを一時記憶領域に追加します
(3)一時保管場所の内容を地元の図書館に提出する
-m "xxx"ローカルライブラリに送信されたファイルにコメントを追加します
(4)注
赤いボックスは、このファイルがワークスペースにないことを意味します
i。ワークスペースに配置されていないファイルはgitによって管理されていません
ii。ワークスペース内のファイルでさえgitによって管理されておらず、addコマンドとcommitコマンドを介してのみ管理できます。
- ステータスコマンド
ステータス情報を表示する
(1)ファイルDemo2.txtを作成し、ステータスを確認します
(2)Demo2.txtでaddコマンドを実行し、一時ストレージ領域に追加してステータスを確認します
(3)Demo2.txtでcommitコマンドを実行し、ローカルライブラリに送信してステータスを確認します
i. 红框表示暂存区无文件,已经全部提交到本地库
ii. 对文件内容修改之后需要重新执行add、commit命令将其提交到本地库
- ログコマンド
(1)git log
最も近いものから最も遠いものへとログ情報を表示します
空白:次のページ
b:前のページ
q:終了
(2)git log --pretty = oneline
(3)git log --oneline
(4)git reflog
HEAD @ {X}は、このバージョンにロールバックするにはXステップが必要であることを意味します
- リセットコマンド
履歴バージョンを転送または巻き戻し
注:ターミナルでコピーするものを選択し、右クリックして[貼り付け]を選択して貼り付けます
- ハード\混合\ソフトパラメータ
git reset --hard [インデックス番号]:ローカルライブラリのバージョンが変更されると、それに応じて一時ストレージ領域と作業領域のバージョンが変更されます
git reset --mixed [インデックス番号]:ローカルライブラリのバージョンが変更されると、それに応じて一時ストレージ領域が変更されますが、作業領域は変更されません。
git reset --soft [インデックス番号]:ローカルライブラリのバージョンが変更されると、一時ストレージ領域も作業領域も変更されません
- ファイルの削除/削除されたファイルの回復
(1)Test2.txtファイルを作成し、そのファイルに対してaddコマンドとcommitコマンドを実行します
(2)ワークスペースのTest2.txtファイルを削除します
(3)削除操作を一時記憶域とローカルライブラリに同期させます
(4)ログを表示
ローカルライブラリでファイルが物理的に削除されていないことが判明しましたが、削除されたレコードが追加され、削除されたファイルはインデックス番号に従って取得できます。
(5)インデックスを介して削除されたファイルを取得します
- diffコマンド
特定のファイルワークスペースのコンテンツと一時ストレージ領域の違いを比較します
(1)コンテンツaaaaを含むファイルTest3.txtを作成し、そのファイルに対してaddコマンドとcommitコマンドを実行します。
(2)ワークスペースのTest3.txtファイルの内容を変更し、bbbを追加すると、内容がaaaabbbになり、ワークスペースと一時記憶域の内容に一貫性がなくなります。
(3)このファイルに対してgit diffTest3.txtコマンドを実行します
(4)git diffは、作業領域と一時記憶領域のすべてのファイルの違いを比較することを意味します
(5)git diff [インデックス番号] / [HEAD] [ファイル名]は、作業領域と一時記憶領域のファイルのバージョンを比較することを意味します
6、ブランチの紹介と使用
1.ブランチの紹介
次の図に示すように、バージョン管理プロセスでは、複数のブランチを使用して、複数のタスクを同時に進めます。
分岐の利点:
(1)複数のブランチを相互に影響を与えることなく同時に開発できるため、開発効率が向上します。
(2)ブランチの機能開発に失敗した場合は、このブランチを直接削除するだけで、他のブランチには影響しません。
2.オペレーションブランチ
(1)ブランチの表示、作成、および切り替え
i。ワークスペースにTest4.txtファイルを作成します。コンテンツはabcで、その上でaddコマンドとcommitコマンドを実行します。
ii。ブランチの表示(現在、マスターブランチマスターは1つだけです)
iii。ブランチを作成する
iv。ブランチの切り替え
上の図のオレンジ色のボックスは、新しいブランチが、空白のブランチではなく、メインブランチの前のファイルバージョンを継承することを示しています。
(2)ブランチの競合問題を解決します
i。branch01ブランチに入り、次のコンテンツをTest4.txtファイルに追加し、addコマンドとcommitコマンドを実行します。
ii。ブランチをマスターに切り替え、ブランチの状況を確認し、マスターブランチの内容がbranch01で変更されていないことを確認します。
このとき、Test4.txtファイルを開いて、abcが3文字しかないこと、つまり、新しいコンテンツがないことを確認します。
iii。マスターブランチを前提としてTest4.txtにコンテンツを追加し、addコマンドとcommitコマンドを実行します
このとき、メインブランチとbranch01ブランチの同じファイルの内容が競合します
iv。この時点で、branch01ブランチをメインブランチにマージする必要があります
v。マスターブランチに切り替えた後、git mergebranch01を実行します
vi。Test4.txtファイルの内容を表示します
vii。この時点で、このファイルを削除および変更し、何を残すかを決定してから、addコマンドを実行する必要があります。
viii。このファイルに対してcommitコマンドを実行して、競合を解決します
7、チーム内部コラボレーションプロセスシミュレーション
-
スタッフAはローカルライブラリを作成し、ワークスペースのDemo.txtファイルでaddコマンドとcommitコマンドを実行します
-
AGitHubでリモートライブラリを作成します
(1)リモートライブラリを作成する
(2)情報を入力する
(3)完了状況
(4)リモートライブラリのアドレスが長いため、このアドレスをローカルでエイリアス化できます
i。エイリアスを作成する
ii。エイリアスを表示
- ローカルライブラリのコンテンツをリモートライブラリにプッシュします(ポップアップウィンドウでGitHubアカウントにログインする必要があります)
プッシュが成功したら、GitHubでリモートライブラリを確認します。
- スタッフBは、Aによって作成されたリモートライブラリをローカルに複製します
クローン作成操作は、以下を完了するのに役立ちます。
(1)ローカルライブラリを初期化します
(2)リモートライブラリの内容をローカルに完全に複製します
(3)リモートライブラリのエイリアスを自動的に作成します(origin)
- BがDemo3.txtファイルを作成し、リモートライブラリにプッシュする必要があります。直接プッシュすると、エラーが発生します。
- GitHubでAのアカウントにログインし、Bをチームに招待します
- GitHubで従業員Bのアカウントにログインし、ブラウザのアドレスバーに招待リンクを入力してチームに参加します
-
B Demo3.txtファイルをリモートライブラリに再度プッシュします、成功しました
-
リモートライブラリの変更されたコンテンツをローカルにダウンロードする必要があります
注:より安全な方法があります(フェッチ+マージ)
(1)リモートライブラリでfetchコマンドを実行します
grabコマンドの実行後、リモートライブラリのコンテンツのみがローカルにダウンロードされますが、ワークスペースのコンテンツは更新されません。
(2)ワークスペースのコンテンツを正式に更新する前に、リモートライブラリに移動して、コンテンツが正しいかどうかを確認できます。
(3)正しいことを確認した後、マージ操作を実行します(マージ前にブランチを元に戻す必要があります)
- 共同開発中の競合を解決する方法
(1)AはファイルTest.txtをリモートライブラリにプッシュし、Bはリモートライブラリからローカルにプルし、BはTest.txtを変更してリモートライブラリにプッシュします。
(2)AがTest.txtを変更してリモートライブラリにプッシュした後、競合が発生します
(3)競合が発生した場合は、最初にローカルにプルし、前の方法に従ってファイルを削除および変更してから、リモートライブラリにプッシュする必要があります。
注:競合が解決された後、commitコマンドの実行時にファイル名を追加することはできません
8.チーム間のコラボレーションプロセスシミュレーション
- A社の従業員Aが自分のリモートライブラリのアドレスをコピーします
-
B社のスタッフBが自分のGitHubアカウントにログインし、ブラウザのアドレスバーにAのリモートライブラリアドレスを入力します
-
Bは、図のフォークをクリックして、Aのリモートライブラリを自分のリモートライブラリにコピーします。
- クリックすると表示されます
-
Bは、リモートライブラリのコンテンツをローカルに複製し、変更後にリモートライブラリにプッシュできます。
-
B GitHubにログインし、リモートライブラリに入り、[
- レビューのためにGitHubアカウントにログインします
9つのSSHパスワードなしのログイン
-
コマンドを入力して、コンピューターユーザーのホームディレクトリを入力します
-
コマンドを実行して.sshディレクトリを生成します
コマンドを入力した後、Enterキーを3回押して、デフォルト値を使用します
-
作成された.sshディレクトリには2つのファイルがあります
-
.pubで終わるファイルを開き、内容をコピーします
-
GitHubアカウントにログインします
- エイリアスSSHリモートアドレス
SSHを使用する利点:毎回認証する必要がない