Gitのインストールと使い方(バージョン管理)

1. Git の概要 (バージョン管理)

バージョン管理システムの開発は、次の 3 つの段階に分けることができます。

  • ローカルバージョン管理システム
  • 集中バージョン管理システム
  • 分散バージョン管理システム
  1. バージョン管理とは何ですか?
    バージョン管理システム (VCS と略します) は、必要なときにプロジェクトの完全なスナップショットを保存するのに役立つ「データベース」と考えることができます。以前のスナップショット (「バージョン」と呼ばれる) を表示する必要がある場合、バージョン管理システムは、現在のバージョンと以前のバージョンの間のすべての変更の詳細を表示できます。

「バージョン管理」とは何ですか? バージョン管理は、1 つまたは複数のファイルの内容の変更を記録し、将来、特定のバージョンのリビジョン ステータスを確認できるようにするシステムです。GIT CODE では、ソフトウェアのソース コードを格納するファイルのバージョン管理を実行しますが、実際には、どの種類のファイルでもバージョン管理を実行できます。
チーム開発でバージョン管理システムを使用する利点

  1. バージョン管理
    バージョン管理の混乱を回避します。これが、バージョン管理を使用する主な理由とバージョン管理の目的です。複数のコピーをローカルに手動でバックアップすることは絶対に望ましくありませんが、最終的には、どのバックアップが最新であるか、そのバックアップにどのような変更が加えられたか、変更日がいつだったかなどがわかりません。思い出せないのです。すべての問題。バージョン管理ソフトウェアはこれらの問題を解決できます。詳細なログがあり、すべての送信とすべての変更を記憶し、異なるバージョン間の類似点と相違点を比較および表示し、以前のバージョンに復元できます。

  2. コードの品質を向上させるに
    は、バージョン管理が存在する前は、コード内に無関係なコメントを記述する必要がよくありました。たとえば、誰かが特定の日に特定のコードを変更した、または使用するかどうか不明なコードが保存されていたなどです。コメントの形式など。待て、これはゾンビ コードです。これらのタスクはバージョン管理ツールで実行できるようになり、無関係なゾンビ コードをコードから削除できるようになりました。
    4. 共同開発および複数人による開発の効率を向上します。
    更新されたコードをタイムリーに送信すると、チーム メンバーはコードの最新のステータスを把握し、作業の重複を避けることができます。
    5. 責任分担を明確にする。
    いつ、誰がコードを変更したか、どのコンテンツが変更されたかはバージョン管理によって記録され、簡単に照会して説明責任を果たせるようになります。
    6. コードに加えて、履歴書などの多くのドキュメントや個人データもバージョン管理できるため、興味深く効率的です。継続的に変更する必要があるすべてのドキュメントはバージョン管理できます。
    バージョン管理ツール:
    現在一般的なバージョン管理ツールを紹介します。

  3. ギット

Git は現在、世界で最も先進的な分散バージョン管理システムです。Git と Gitlab を使用してバージョン管理環境を構築することは、現在、インターネット企業で最も一般的なバージョン管理方法です。はじめに: Git は、無料のオープンソース分散バージョン管理システムであり、以下のように設計されています

小規模なプロジェクトから大規模なプロジェクトまで、あらゆるものを効率的に処理します。
Git は習得が簡単で、メモリ使用量が小さく、超高速なパフォーマンスを備えています。
Github アドレス: https://github.com/git/git
公式 Web サイト: https://git-scm.com/ 公式
ドキュメント: https://git-scm.com/docs
中国語ドキュメント: https://git- scm.com/book/zh/v2
ダウンロードアドレス: https://git-scm.com/downloads

  1. SVN

はじめに:
TortoiseSVN は、非常に使いやすいクロスプラットフォームのバージョン管理/バージョン管理/ソース コード管理ソフトウェアです。これは Apache Subversion (SVN)® に基づいており、TortoiseSVN は Subversion 用のシンプルで使いやすいユーザー インターフェイスを提供します。
TortoiseSVN オープンソース アドレス: https://osdn.net/projects/tortoisesvn/
Subversion の Github アドレス: https://github.com/apache/subversion
公式 Web サイト: https://tortoisesvn.net/
公式ドキュメント: https:// tortoisesvn.net/docs/release/TortoiseSVN_en/index.html
中国語ドキュメント: https://tortoisesvn.net/docs/release/TortoiseSVN_zh_CN/index.html
ダウンロード アドレス: https://tortoisesvn.net/downloads.html

  1. HG

はじめに:
Mercurial は無料の配布ソース コード管理ツールです。あらゆる規模のプロジェクトを効率的に処理でき、シンプルで直感的なインターフェイスを提供します。Mercurial は、Python 言語で実装された軽量の分散バージョン管理システムであり、学習と使用が簡単で、強力な拡張性を備えています。
公式ウェブサイト: https://www.mercurial-scm.org/ 公式
ドキュメント: https://www.mercurial-scm.org/wiki/BeginnersGuides
ダウンロードアドレス: https://www.mercurial-scm.org/downloads

  1. CVS

CVS はバージョン管理システムであり、ソース構成管理 (SCM) の重要な部分です。これを使用すると、ソース ファイルやドキュメントの履歴を記録できます。古いバージョン管理システムはクライアント/サーバーの動作に基づいているため、複数のユーザーに対応でき、ネットワークの形成にも非常に便利です。この機能により、異なる場所にいる人が同時にデータ ファイル (特にプログラムのソース コード) を作業する場合、CVS が最初の選択肢となります。
公式ウェブサイト:http://www.nongnu.org/cvs/公式
ドキュメント:https://web.archive.org/web/20140629065005/http://ximbiot.com/cvs/manual/cvs-1.11.23/ cvs.html
ダウンロードアドレス: https://ftp.gnu.org/non-gnu/cvs/

アドバンテージ:

  1. 管理が容易になります。従来のバージョン管理システムは集中リポジトリを使用しており、リポジトリ関連の管理の一部は管理者のみが実行できます。Mercurial では分散モデルのためそのような問題はなく、各ユーザーが自分のリポジトリを管理し、管理者はこれらのリポジトリを調整して同期するだけで済みます。
  2. より堅牢なシステム。分散システムは、集中型の単一サーバー システムよりも堅牢です。単一サーバー システムでサーバーの問題が発生すると、システム全体が実行できなくなります。通常、分散システムは 1 つまたは 2 つのノードの影響を受けません。
  3. ネットワークへの依存度が低くなります。同期はいつでも実行できるため、Mercurial はオフラインでも管理でき、インターネット接続がある場合にのみ同期する必要があります。

バージョン管理ツールのビジュアルクライアント

  1. ギット・クラーケン

GitHub、GitLab、Bitbucket、Azure DevOps (VSTS) でホストされているリポジトリを簡単に使用できます。GitKraken は、クローンの作成、ブランチの追加、プル リクエストの作成/オープンを行うことを目的としています。
公式サイト:https://www.gitkraken.com/

特徴:

  1. 直感的なUI
  2. 組み込みのコード エディター: 新しいプロジェクトを初期化し、組み込みのコード エディターを使用して新しいファイルとフォルダーを追加し、GitKraken で直接編集します。ファイルを保存し、変更をステージングしてコミットします。コンテキストスイッチはもう必要ありません。
  3. タスク追跡: Glo Board を GitKraken のリポジトリに接続します。タスクが進むにつれて、問題に関するコードをすぐに更新して、コーディングに戻ることができます。2.タワー

公式ウェブサイト:https://www.git-tower.com

タワーの利点

  1. 使いやすさ: 複雑なコマンド (およびそのパラメータ) を覚える必要はありません。Tower では、多くの高度な操作をドラッグ アンド ドロップと同じくらい簡単に行うことができます。

  2. すべてを元に戻す: ローカル変更の元に戻す、古いバージョンの復元、コミットを元に戻す、削除されたコミットを復元する、ブランチの削除を元に戻すなど

  3. 明確な視覚化、より深い理解: Tower の明確なビジュアル インターフェイスは非常に便利で、複雑なシーンを理解しやすくします。

  4. Git をエレガントに使用: シンプルかつ直感的な方法でマージ競合を解決します。検証に SSH キー、ユーザー名、パスワード、認証トークンは必要ありません。

  5. ソースツリー

はじめに: Windows および Mac 用の無料の Git クライアントである Sourcetree は、
Git リポジトリとの対話方法を簡素化します。Sourcetree のシンプルな Git GUI を通じてリポジトリを視覚化し、管理します。公式
Web サイト: https://www.sourcetreeapp.com/

2.GITのインストールとコマンドのインストール

1. インストール

私は主に Windows で開発しているため、Windows での git のインストールについてのみ説明します (Linux、Unix、および Mac での git インストールはここにはリストされていません)。

1) 公式 Web サイトからダウンロードします: Git - ダウンロード
2) ダブルクリックして exe を実行し、デフォルトでインストールします (インストール パスを変更することもできます);
インストールが完了したら、マウスの右ボタンで確認できますGit GUI ここ
ここに画像の説明を挿入します
主に git 用です グラフィック ウィンドウ (通常は使用されません。使用するには TortoiseGit がインストールされます); Git Bash ここは主に次のコマンド ラインです
ここに画像の説明を挿入します

git のインストールが成功したことを示します

2. 作業の流れ

1) リモート ウェアハウスからローカル ウェアハウスとして git リソースのクローンを作成します。

2) ローカルの倉庫からコードをチェックアウトし、変更します。

3) コードを送信する前に、コードを一時記憶領域に追加して送信します。

4) 変更を送信することを約束します (ローカルの倉庫に送信し、変更の各履歴バージョンを保存します)。

5) 変更が完了し、コードを共有する必要がある場合は、コードをリモート ウェアハウスにプッシュします。

以下に示すように:
ここに画像の説明を挿入します

ワークスペース: ローカルで見えるディレクトリがワークスペースです

ステージング領域: .git ディレクトリ内のインデックス ファイル (.git/index) 内 (インデックスとも呼ばれます)

3. Git管理ファイルのバージョン

3.1 リポジトリの作成 リポジトリ
は、単純にディレクトリとして理解できます。このディレクトリ内のすべてのファイルは Git で管理でき、Git は各ファイルの変更、削除とその履歴を追跡できます。

git ウェアハウスに .git フォルダがあります。このフォルダは非表示になっています。非表示フォルダが表示されるように設定されていない場合、ユーザーはフォルダを表示できません。ユーザーは、コマンド ライン git init を使用して .git フォルダを直接作成できます。 「TortoiseGit はここにリポジトリを作成します」を作成または右クリックします (ポップアップ ウィンドウの「純粋なリポジトリを作成 (作業ディレクトリなし)」はチェックしないでください。チェックすると、作成されたリポジトリには作業ディレクトリがなくなり、ファイルを作成できなくなります)ローカル リポジトリに追加される場合)、.git フォルダーを含むディレクトリは作業ディレクトリと呼ばれます。

Git は自動的にマスター ブランチを作成し、マスターのポインター HEAD を実行します。

4. 注文

1)初期化

——gitリポジトリを初期化する

git init // git ウェアハウスを初期化する
git init project // プロジェクト ディレクトリ配下の git ウェアハウスを初期化する
2) add

——ファイルをバージョン管理に追加する

git add readme.txt //readme.txt をウェアハウスに送信します
3) クローンを作成します

——既存の git リポジトリからプロジェクトをコピーします。

git clone https//test.git test //test.git ウェアハウスの内容を test ディレクトリにコピーします
4) config

——コマンドの設定

git config --list //現在の git 構成情報を表示します
git config -e //現在のウェアハウスに git config -e を設定します
git config -e --global //システム上のすべてのウェアハウスに対して
5) ステータス

——倉庫の現在のステータスを表示し、変更されたファイルを表示します

git status
git status -s //簡単な内容を取得
6) diff

——ファイル間の違い、一時保存領域と作業領域の違いを比較する

git diff [filename] //キャッシュされていない変更
git diff --cached [filename] //キャッシュされた変更を表示
git diff --staged [filename]
git diff HEAD //キャッシュされた変更とキャッシュされていない変更をすべて表示
git diff --stat // diff 全体ではなく概要を表示
git diff [first-branch] [second-branch] // 2 つのコミットの違いを表示
7) commit

——ステージングエリアをローカル倉庫に提出します

git commit -m [message] //送信
git commit [file1] ... [fileN] //指定されたファイルをウェアハウス領域に送信
git commit -a //git add を実行する必要はなく、直接送信
8) リセット

——バージョンに戻る: 特定の提出済みバージョンに戻るように指定できます。

git replace [–soft | --mixed | --hard] [HEAD]
–mixed はデフォルトであり、このパラメータなしで使用できます。これは、ステージング領域内のファイルを最後の送信と一致するようにリセットするために使用されます。ワークスペース ファイルの内容は変わりません。

git replace HEAD~1 //すべてのコンテンツを以前のバージョンにロールバックします
git replace HEAD readme.txt //readme.txt ファイルのバージョンを以前のバージョンにロールバックします
git replace xxx //指定されたバージョンにロールバックします
–softパラメータが使用されているバージョンにロールバックする

git replace --soft HEAD~3 //最初の 3 つのバージョンに戻ります
。hard パラメーターは、ワークスペース内のコミットされていない変更をすべて元に戻し、ステージング領域とワークスペースの両方を以前のバージョンに戻し、以前のバージョンをすべて削除します。 情報の提出: (注意: ロールバックポイントより前の情報はすべて削除されます)

git replace --hard HEAD~3 //最初の 3 つのバージョンに戻ります
git restart --hard xxxx //特定のバージョンのロールバック ポイントより前のすべての情報に戻ります
git restart --hardorigin/master //ローカルのステータスを復元しますリモートと同じにフォールバックします
9) rm

——ワークスペースファイルの削除

git rm [file] //ステージング領域とワークスペースからファイルを削除します
git rm -f [file] //ステージング領域に配置されている以前に変更されたファイルを削除するには、強制削除オプション -f
git rmを使用する必要があります--cached [file] //ファイルを一時記憶領域から削除し、現在の作業ディレクトリに保持します
git rm -r * //再帰的に削除し、ディレクトリ内のすべてのファイルとサブディレクトリを削除します
10) mv

——ワークスペースファイルの移動または名前変更

git mv [file] [newfile] //ファイル、ディレクトリ、またはソフト リンクを移動または名前変更します
git mv -f [file] [newfile] //新しいファイルが存在するため、強制的に実行する必要があります
11) ログ

——過去の提出記録を表示する

git log //履歴コミット記録を表示する
git log --online //履歴記録の簡潔なバージョンを表示する
git log --graph //履歴内で分岐とマージが発生した時刻を表示する
git log --reverse //すべてのログを表示するreverse
git log --author //指定されたユーザーによって送信されたログを表示します
git log --before(–since)={3.week.ago} --after(–until)={2021-07-25} // 3 週間前と 2021 年 7 月 25 日以降のすべてのコミット ログを表示
git log --no-merges //マージ コミットを隠す
12) 非難

——指定したファイルの変更履歴を一覧表示します

gitblame [ファイル]
13)リモート

——遠隔倉庫運営

git Remote -v //すべてのリモート リポジトリを表示します
git Remote show [remote] //リモート リポジトリに関する情報を表示します
git Remote add [shortname] [url] //リモート リポジトリを追加します
git Remote rm name //リモート リポジトリを削除します
git Remote rename old_name new_name //ウェアハウス名を変更します。
ローカル git ウェアハウスと github 間の通信が SSH 経由で暗号化されている場合は、検証情報を構成する必要があります。

まず SSH キーを生成します。

~/ の下に .ssh フォルダーを生成し、id_rsa.pub を開いて、キーの値をコピーします。

14)フェッチ

——リモートからコード ベースを取得する このコマンドを実行した後、リモート ブランチからそれが配置されているブランチに git merge を実行する必要があります。

git merge //リモートウェアハウスからデータを取得し、現在のブランチにマージを試みます
git fetch [alias] //更新されたデータを取得します
git merge [alias]/[branch] //リモートウェアハウスからの更新を現在のブランチにマージします
15) 引っ張る

——リモート コードをダウンロードしてマージします。これは git fetch と git merge FETCH_HEAD の略称です。

git pull [リモートホスト名] [リモートブランチ名]:[ローカルブランチ名] //リモートホストのブランチをプルし、ローカルブランチとマージします。現在のローカルブランチの場合は省略できます

16)押す

——リモートコードをアップロードしてマージする

git Push [リモートホスト名] [ローカルブランチ名]: [リモートブランチ名]
ローカルブランチ名がリモートブランチ名と同じ場合、リモートブランチ名は省略できます。

git Push --force [リモートホスト名] [ローカルブランチ名]:[リモートブランチ名] //ローカルバージョンとリモートバージョンに違いがあるため、強制的にプッシュします git Push [リモートホスト名] --delete [
リモートブランチ名] // ホストに対応するブランチを削除
17) ブランチ管理

git Branch [ブランチ名] //ブランチを作成します
git checkout [ブランチ名] //ブランチを切り替えます
git ブランチ //ブランチをリスト
します git Branch -d [ブランチ名] //ブランチを削除します
git merge [ブランチ名] //ブランチ名をブランチ
18) タグにマージします

——タグを付けると、ラベル付けを遅らせることができます

git tag -a xxx [xxxx] //アノテーション付きタグを作成
git tag -a [tagname] -m "xxx" //タグ情報を指定
git tag -s [tagname] -m "xxx" //PGP 署名タグ

GitHubDaily の目的は、GitHub 上の優れたオープンソース プロジェクトのバッチを毎日随時開発者にプッシュし、開発者が現時点で最もホットなオープンソース プロジェクトを発見できるように支援し、開発者がテクノロジーの脈動を制御し、その開発範囲を拡大できるようにすることです。技術的な視野を広げ、オープンソース プロジェクトから学ぶことで技術的能力を向上させます。ポータル: github.com/GitHubDaily/GitHubDaily

3. 使用する

4. バージョン管理

5. 支店管理

6.Gitタグ

7. ミニマリスト Git + VsCode (Windows)

おすすめ

転載: blog.csdn.net/SDXYGZH/article/details/126541769