git の使用法 (浅いものから深いものまで)

  • ディレクトリのフローチャート
    ここに画像の説明を挿入します

1. 分散バージョン管理と集中バージョン管理

1.1 一元的なバージョン管理

  • 集中バージョン管理システムには、CVS および SVNが含まれます。
  • その主な特徴は、すべてのファイルのリビジョンを保持する単一の集中管理サーバーです。
  • 共同開発者はクライアントを通じてこのサーバーに接続し、最新のファイルを取得したり、更新を送信したりできます。

ここに画像の説明を挿入します

  • 長所と短所
    • 昔ながらのローカル管理と比較すると、プロジェクトの他のメンバーが何をしているのかを誰もがある程度見ることができます。
  • しかし、集中バージョン管理には核心的な問題もあります。それは、中央サーバーに障害が発生することはありえないということです。
  • 中央データベースが配置されているディスクが破損し、適切なバックアップが行われていない場合、間違いなくすべてのデータが失われます。

1.2 分散バージョン管理

  • 分散バージョン管理システムには次のものが含まれます。Git
    ここに画像の説明を挿入します
  • 長所と短所:
    • クライアントは、ファイル スナップショットの最新バージョンを抽出するだけでなく、完全な履歴を含むコード ウェアハウスを完全にミラーリングします。
    • このようにして、共同作業に使用されているサーバーに障害が発生した場合、ミラー化されたローカル ウェアハウスを使用してその後の回復を行うことができます。
    • すべてのクローン作成操作は実際にはコード リポジトリの完全なバックアップであるためです。

2. インストールと構成

インストールと構成のリファレンス

  • ユーザー名と電子メールの設定
$ git config --global user.name "username"
$ git config --global user.email "[email protected]"

3. git コマンドライン操作

基本的な指導の前提

1. 克隆项目  `git clone 项目地址`
2. 初始化仓库` git init`
3. 添加暂存区 `git add .`
4. 提交本地仓库 `git commit -m 项目初始化`
5. master分支创建release分支` git branch release`
6. 基于master分支创建develop分支 `git branch develop`
# 推送master分支
git push -u origin master
# 推送release分支
git push origin release
# 推送develop分支
git push origin develop
# 在任意目录操作  (仓库地址仅供参考)
git clone https://gitee.com/zd1231230/doctor-demo.git
# 拉取其他分支
git fetch 项目地址 分支名称:别名
git fetch https://gitee.com/zd1231230/doctor-demo.git drugPayment:drugPayment

3.1 ADMUのロゴ

  • M modifiedファイルを github に追加し、そのファイルを変更すると、ファイルの後に M のマークが付けられます。
  • U untrackedこのファイルをローカルで作成し、github に送信していない場合は、U とマークされます。
  • D deleteこのファイルを削除すると、vscode-git はこのステータスを記録します。
  • Aステージングエリアにはまだ送信されていません。

3.2 プロジェクトの初期化と送信のための基本コマンド

  1. 空のディレクトリを作成します (中国語を含まないことが望ましい)
$ mkdir gitMaster
$ cd gitMaster
$ pwd
/Users/git/gitMaster
  1. ウェアハウスの初期化git init
$ git init
Initialized empty Git repository in /Users/hxk/mymenu/.git/
  1. リポジトリにファイルを追加する
$ git add test.txt
  1. ファイルをウェアハウスに送信する
    • - m 以下は提出手順です
    • git commit --amend送信されたコメントは間違っています。修正するために使用できます
$ git commit -m "a new file"
  1. コミット履歴を表示する
git log
  1. ステータスの表示
$ git status

3.3 ファイル状態の追跡と操作プロセス

  • ファイルを送信するときに跟踪和未跟踪ステータスに分けることができます

    • 未跟踪: デフォルトでは、Git ウェアハウス配下のファイルは Git ウェアハウス管理に追加されないため、add コマンドを使用して操作する必要があります。
    • 已跟踪: Git ウェアハウス管理に追加されたファイルは追跡された状態にあり、Git はファイルに対してさまざまな追跡と管理を実行できます。
  • ファイルのステータスを確認する

git status –s
git status --short
  • 追跡されたファイルを細分ステータスに分けることができます
    • staged: バッファ領域内のファイルのステータス。
    • Unmodified:commit コマンドを使用すると、ステージングされたファイルを Git リポジトリに送信できます
    • Modified: ファイルが変更されると、ファイルは変更済み状態になります。
      ここに画像の説明を挿入します
  • トレース ファイルをコマンドしgit add .てステージング領域に追加します
    ここに画像の説明を挿入します
  • ファイル更新の提出 -git commit - m提出手順
    ここに画像の説明を挿入します

3.4 提出履歴とバージョンのロールバック

git log   // 提交的日志 (里面包含提交的id)   q 退出
git log --pretty=oneline --graph  //简短的提交历史日志 (可以看到分支的提交结构)
git log --pretty=oneline

ここに画像の説明を挿入します

  • バージョンのロールバックを実行する場合は、現在どのバージョンにいるかを知る必要があります。Git は、HEAD ポインターを介して現在のバージョンを記録します。
    ここに画像の説明を挿入します
  • git reset--hard HEAD ^^ 以前のバージョン
  • git reset--hard HEAD~1000~複数のバージョンが存在する
  • git reset--hard 595674bdc04935452e583b360e714238b1295bf7バージョンの指定

3.5 git 無視ファイル

  • .gitignoreファイル、無視されるファイルのパターンをリストします
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

node_modules
.DS_Store
dist
dist-ssr
coverage
*.local

/cypress/videos/
/cypress/screenshots/

# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
src/views/User/components/ConsultItem.vue

3.6 リモートサーバー

  • リモート倉庫を表示する
git remote
git remote –v
-v是—verbose的缩写(冗长的)

ここに画像の説明を挿入します

  • リモート アドレスの追加: ローカル ウェアハウスとリモート サーバー ウェアハウスに接続を確立させます。
git remote add <shortname> <url>
git remote add origin http://152.136.185.210:7888/gitremotedemo.git
重命名远程地址: git remote rename master newMaster
移除远程地址:  git remote remove gitlab
  • 具体的な手順
// 重要 添加远程地址(让本地的仓库和远程服务器仓库建立连接):
//  git remote add < shortname > <url>
  0. git init    // 初始化
  1.  git remote add origin  https://gitee.com/zd1231230/in.git   // 关联远程仓库
  2.0  git push --set-upstream origin newFetch 提交到远程仓库
  2.1   git pull https://gitee.com/zd1231230/in.git master  拉取仓库到主分支
  3.  新建仓库 newFetch
  4.   git commit -a -m "初始化"
  5. push

ここに画像の説明を挿入します

  • 注意点リモートウェアハウスと関連付けた後、ブランチをプルしてマージしますgit pull
git pull 等于  git fetch + git merge(rebase)

3.7 ブランチの作成、切り替え、およびマージ

  • ブランチの作成
git branch 分支名
  • ブランチを作成してマージする
git checkout -b <newbranchname>
  • ブランチのマージ
git merge <name>
  • ブランチの表示と削除
  • git branch# 現在のブランチをすべて表示
  • git branch –v# 最後のコミットも表示します
  • git branch --merged# 現在のブランチにマージされたすべてのブランチを表示する
  • git branch --no-merged# 現在のブランチにマージされていないすべてのブランチを表示します
  • git branch –d hotfix# 現在のブランチを削除します
  • git branch –D hotfix# ブランチの強制削除

3.8 ブランチの追跡

  • 問題 1: 現在のブランチにトラック ブランチがありません
    ここに画像の説明を挿入します
  • 理由:現在のブランチはリモートのオリジン/マスター ブランチでは追跡されません。
    • 追跡せずに直接実行しますpull操作的时候必须指定从哪一个远程仓库中的哪一个分支中获取内容
  • 直接実行
git push  origin master
  • git fetch を直接実行したい場合は、前提条件があります。現在のブランチに追跡ブランチが設定されている必要があります。
    ここに画像の説明を挿入します

4. Gitワークフロー(gitフロー)

  • Git でブランチを使用する利便性により、多くの Git ワークフローが生成されています。
    • 言い換えれば、プロジェクト開発サイクル全体のさまざまな段階で、同時に複数のオープンブランチを持つことができます。
    • 特定のトピック ブランチを他のブランチに定期的にマージできます。
  • たとえば、次のようなワークフローがあります。
    • masterメインブランチとして。
    • develop開発ブランチとして、安定バージョンがある場合は、master ブランチにマージされます。
    • topic特定のテーマ、機能、または機能のブランチとして開発され、開発完了後に開発ブランチにマージされます。
git fetch 项目地址 分支名称:别名
git fetch https://gitee.com/zd1231230/doctor-demo.git dev:dev

ここに画像の説明を挿入します
Git flow ワークフロー図の
ここに画像の説明を挿入します
記事リファレンス: リベースとタグタグ

おすすめ

転載: blog.csdn.net/weixin_46104934/article/details/131361858