Git は、ソフトウェア開発プロジェクトにおけるコードの変更を追跡および管理するために使用されるバージョン管理システムです。ファイルの変更、追加、削除を追跡し、これらの変更の履歴を記録できます。Git は、チーム メンバーが開発で共同作業するのに役立ち、同時編集やコードのマージを処理する効果的な方法を提供します。この記事では、Git をより効果的に活用してチーム コラボレーションのためのコードを管理するための、Git の正しい使用姿勢とベスト プラクティスを紹介します。
1. Gitの基本概念
Git には、作業ディレクトリ、ステージ/インデックス、リポジトリの 3 つのローカル作業ドメインがあります。リモート サーバー上の git ウェアハウス (リモート ディレクトリ) を含めると、4 つの作業ドメインに分割できます。関係は次のとおりです。
(1) 4つの作業エリア
- ワークスペース: ワークスペースは、通常、プロジェクト コードを保存する場所です。
- インデックス / ステージ: 変更を一時的に保存するために使用されるステージング領域。実際には、これはファイル リストに送信される情報を保存する単なるファイルです。
- リポジトリ: ウェアハウス領域 (またはバージョン ライブラリ) はデータを保存するための安全な場所であり、すべてのバージョンに送信したデータが含まれています。HEAD はウェアハウスに置かれた最新バージョンを指します
- リモート: コードをホストするサーバーであるリモート ウェアハウスは、単純にプロジェクト チーム内のリモート データ交換用のコンピューターと考えることができます。
(2) 作業の流れ
git 作業の一般的なプロセス:
- 作業ディレクトリ内のファイルを追加および変更する
- バージョン管理が必要なファイルをステージング領域に置く
- ステージング領域内のファイルを git リポジトリに送信します。
(3) ファイルの4つの状態
- Untracked: このファイルはフォルダー内にありますが、git ライブラリに追加されておらず、バージョン管理にも参加していません。ステータスは git add によって Staged に変わります。
- 未変更: ファイルはライブラリに置かれ、変更されていません。つまり、リポジトリ内のファイル スナップショットの内容は、フォルダ内のファイル スナップショットの内容とまったく同じです。このタイプのファイルには 2 つの場所があります。変更されている場合は、 git rm を使用してリポジトリを移動すると、Untracked ファイルになります
- 変更済み: ファイルは変更されました。変更のみで、他の操作は実行されていません。このファイルにも 2 つの場所があります。git add を使用してステージング状態に入り、git checkout を使用して変更を破棄し、未変更の状態に戻ることができます。この git checkout は、ライブラリからファイルを取得し、現在の変更を上書きします。
- ステージング: 一時的な状態です。 git commit を実行して、ライブラリへの変更を同期します。このとき、ライブラリ内のファイルとローカル ファイルの整合性が再び整い、ファイルは Unmodify 状態になります。 git replace HEAD filename を実行して、変更をキャンセルします。ステージングされたストレージであり、ファイルのステータスは変更済みです。
2. Gitの基本コマンド
git init
: 現在のディレクトリに新しい Git リポジトリを作成します。git clone
: リモート サーバーからローカル サーバーに Git リポジトリのクローンを作成します。git add filename
: Git リポジトリのステージング領域にファイルを追加します。git commit
: ステージング領域内のファイルを Git リポジトリに送信します。git status
: 倉庫のステータスを確認するgit log
: コミット履歴の表示git reflog
:倉庫の稼働ログを閲覧できますgit diff HEAD
: 現在のコンテンツと最後に送信されたバージョンの違いを比較します。git checkout filename
: ワークスペース コードへの変更を中止します。
3. Git ブランチの操作
分岐は、複数の並列ジョブを実行するときによく使用されます。
git branch
: 現在のすべてのブランチをリストします。git checkout
: 指定したブランチに切り替えます。git merge
: 指定されたブランチのコードを現在のブランチにマージします。git rebase
: 現在のブランチのコードを指定したブランチに変更します。
4.Git コラボレーション
git push
: ローカル Git リポジトリのコードをリモート サーバーにプッシュします。git pull
: リモート サーバーから最新のコードを取得します。git fetch
: リモート サーバーから最新のコードを取得します。git merge
: リモート ブランチのコードをローカル ブランチにマージします。
5. バージョンリリース
安定バージョンがリリースされるたびに、そのバージョン用のタグを作成する必要があります。タグを使用すると、コードの特定のバージョンを識別できるため、将来の検索や追跡が容易になります。ラベルを作成する手順は次のとおりです。
- master ブランチに切り替えます。
git checkout master
- 最新のコードをプルします。
git pull origin master
- ラベルを作成します。
git tag -a v1.0.0 -m "Release version 1.0.0"
- タグをリモート リポジトリにプッシュします。
git push origin --tags
6. 遠隔倉庫業務
- 通信キーを生成します: ssh-keygen -t rsa -C " [email protected] "。生成された公開キーは、以下に示すように /home/stu/.ssh/ の下にあります。
2. github または gitee (コード クラウド) との接続があるかどうかをテストします。
github コマンドをテストします: ssh -T [email protected]
コード クラウド コマンドである gitee をテストします。
3. プロジェクトのクローンを作成します: git clone プロジェクト アドレス
4. ブランチをリモート ウェアハウスに送信します: git Push 起点ブランチ名
5. ブランチをリモート ウェアハウスに送信し、ブランチを追跡します: git Push -u 起点ブランチ名
6. リモート サーバー上のブランチをプルし、ローカルで更新します: git pull 起点ブランチ名