技術共有

Git チュートリアル

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Git 分散バージョン管理ツール

Git は、非常に小さなプロジェクトから非常に大規模なプロジェクトまで、プロジェクトのバージョン管理を効率的かつ高速に処理できるオープンソースの分散バージョン管理システムです。

Git は分散されています。Git には中央サーバーは必要ありません。私たちは Git を使用しており、全員の変更の交換を容易にするために中央サーバーを持っていますが、このサーバーのステータスは各 PC と同じです。このサーバーを開発者の PC として使用すると、コンピューターをシャットダウンせずに全員が簡単に通信できるようになります。このサーバーがなくても誰もが作業できますが、「交換」の変更は不便です。
ここに画像の説明を挿入します

バージョンコントローラーのアプローチ

一元化されたバージョン管理ツール

集中型バージョン管理ツール。バージョン ライブラリは中央サーバーに保存されます。作業する場合、チームの全員が中央サーバーからコードをダウンロードします。ローカル エリア ネットワークまたはインターネットに接続する必要があります。個人的な変更を中央リポジトリに送信します。例: SVN、CVS
ここに画像の説明を挿入します

分散バージョン管理ツール

分散バージョン管理システムには「中央サーバー」はありません。すべての人のコンピュータには完全なバージョン ライブラリが存在します。バージョン ライブラリは自分のコンピュータ上にあるため、インターネットに接続する必要はありません。複数のユーザーが共同作業する場合、各自の変更を互いにプッシュするだけで、お互いの変更を確認できるようになります。例: Git

共通コマンド

Git ワークフロー
ここに画像の説明を挿入します

  • クローン: リモート リポジトリからローカル リポジトリにコードのクローンを作成します

  • チェックアウト: ローカル倉庫から倉庫ブランチをチェックアウトし、変更を加えます

  • 追加: コードを送信する前にステージング領域にコードを送信してください

  • 専念: ローカル ウェアハウスに送信し、変更された履歴バージョンをローカル ウェアハウスに保存します

  • フェッチ: マージ アクションを行わずに、リモート ライブラリからローカル ウェアハウスにフェッチします。

  • 引く: リモート ライブラリからローカル ライブラリにプルし、自動的にマージします (マージ) をワークスペースに置きます。これは次と同等です。fetch merge

  • 押す: コードをリモートウェアハウスにプッシュします

  • git config:設定情報

    # 设置用户信息
    git config --global user.name "userName"
    git config --global user.email "Email"
    
    # 查看配置信息
    git config --global user.name
    git config --global user.email
    
  • alias: 設定コマンドのエイリアス、~/.bashrc構成を追加し、変更の完了後に実行する必要があります。source ~/.bashrc

    # 部分windows系统不允许用户创建.开头的文件,可以在gitBash中执行
    touch ~/.bashrc
    
    # 在~/.bashrc中添加内容,输出git提交日志
    alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'
    
  • git init: 現在のディレクトリを git ウェアハウスとして初期化します。実行が成功すると、複数のディレクトリが存在します。.gitフォルダ

  • git status: 変更ステータスの表示 (一時保管場所、作業場所)
    ここに画像の説明を挿入します

  • git add: ワークスペース内の 1 つ以上のファイルへの変更をステージング領域に追加します。

    git add 单个文件名 | 通配符
    
    # 将所有修改加入到暂存区
    git add .
    
  • git commit: ステージング領域の内容をローカル倉庫の現在のブランチに送信します。git commit -m '注释内容'

  • git log: 送信ログを表示し、エイリアスを構成しますgit-log

    git log [option]
    	--all 显式所有分支
    	--pretty=oneline 将提交信息显示为一行
    	--abbrev-commit 使得输出的commitId更简短
    	--graph 以图的形式显示
    
  • git reset:バージョンのロールバック

    # 查看已经删除的记录,可以看到已经删除的提交记录
    git reflog
    
    # 版本切换,commitId可以通过git log查看
    git reset --hard commitId
    
  • git branch: ローカル ブランチを表示します。ブランチを使用すると、メインの開発ラインから作業を切り離して、バグの修正や新機能の開発を行うことができ、メイン ラインに影響を与えることがなくなります。

    • マスター(生産) ブランチ:オンラインブランチ、メインブランチ、オンラインで動作するアプリケーションとして中小規模のプロジェクトに対応するブランチ

    • 開発する(開発する) ブランチ: これは、通常、開発部分のメイン開発ブランチとして使用され、オンライン開発のさまざまなフェーズで他の並行開発要件がない場合、このバージョンで開発を実行できます。フェーズの開発が完了したら、master ブランチにマージしてオンラインにする準備をする必要があります。

    • feature/xxx ブランチ: 開発から作成されるブランチ。通常は同時に並行して開発されますが、ブランチ上の研究タスクが完了した後、開始が同じ期間に行われないときに作成されます。ブランチを開発します。

    • hotfix/xxx ブランチ: マスターから派生したブランチ。通常、オンラインのバグ修復に使用されます。修復が完了したら、マスター、テスト、開発ブランチにマージする必要があります。

    • テスト(テスト) 支店

    • 前(発売前) 支店
      ここに画像の説明を挿入します

    # 查看本地分支
    git branch
    
    # 创建本地分支
    git branch 分支名
    
    # 切换分支
    git checkout 分支名
    
    # 切换到一个不存在的分支,创建并切换
    git checkout -b 分支名
    
    # 合并分支,一个分支上的提交可以合并到另一个分支
    git merge 分支名
    
    # 删除分支,不能删除当前分支,只能删除其它分支
    # 删除时需要做各种检查
    git branch -d 分支名
    # 强制删除,不做任何检查
    git branch -D 分支名
    
  • 競合の解決: 2 つのブランチ上のファイルへの変更が競合する可能性がある場合 (たとえば、同じファイルの同じ行が同時に変更される場合)、競合を手動で解決する必要があります。手順は次のとおりです。

    1. ファイル内の競合を処理する
    2. 競合が解決されたファイルを一時記憶域 (追加)
    3. 倉庫に提出 (専念)

遠隔倉庫

  • git remote add: リモート ウェアハウスの追加 この操作では、最初にローカル ライブラリを初期化し、次に作成したリモート ライブラリに接続します。

    git remote add