git コマンドと理解

序文

Git は、複数人による共同執筆プロジェクトに使用される手法です。詳細な説明は次のとおりです

記事ディレクトリ


まず、バージョン管理とは何かを理解する必要があります

バージョン管理とは何ですか?

バージョン管理とは、ソフトウェア開発プロセス中のさまざまなプログラム コード、ドキュメント、その他のファイルの変更を管理することを指し、ファイルの変更を追跡し、ファイルの変更時刻、変更内容、さらには変更の実行者を記録します。各段階の時間を記録します。特定の変更 (ファイルへの変更だけでなく) にバージョン番号を追加すると、特定の段階での変更情報の将来のレビュー、さらにはロールバックが容易になります。

Git とは何ですか?

マニュアルバージョンコントローラーに属します

プロジェクトのさまざまな段階のコンテンツを手動でコピーして保存し、それを区別するために適切な説明テキストを追加します。

  • 面倒でエラーが発生しやすい
  • 大量の重複(冗長)データを生成する

バージョン管理ツール

プログラムを通じて上記の手動バージョン管理動作を完了します。

  • 便利で強力
  • 異なるバージョン間の変更のみを記録する

一般的なバージョン管理ツール

  • CVS
  • SVN
  • ギット
  • ……

どのように機能するのでしょうか?

まず、2 つの重要な概念を理解する必要があります

  • エリア

gitファイルのライフサイクル

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

同時に、git は 3 つ (または 4 つ) の異なるレコード状態を提供します。

  • 修正済み
  • 段階的
  • 関与する

特別なステータスを持っています

  • 未追跡

エリア

git は、さまざまなコンテンツを保存するための 3 つの異なるワークスペースを提供します

  • 作品一覧
  • ステージングエリア
  • Gitリポジトリ

[外部リンク画像の転送に失敗しました。ソース サイトにはリーチ防止メカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします (img-bkFxl9BU-1676979124415)(.\assets\areas.png)]

インストール

https://git-scm.com/

構成

Git をインストールした後に最初に行う必要があるのは、ユーザー名とメール アドレスを設定することです。すべての Git コミットでこの情報が使用され、作成するすべてのコミットにこの情報が書き込まれ、変更できないため、これは重要です。

git config user.name "你的姓名"
git config user.email "你的邮箱"

- グローバル

グローバル構成情報はオプションで--global設定可能

git config --global user.name "你的姓名"
git config --global user.email "你的邮箱"

構成を確認してください

# 打印所有config
git config --list
# 打印指定config
git config user.name

倉庫の作成

git バージョン管理に含めるプロジェクト ディレクトリを入力し、git initInitializeを使用します。

git init

.gitこのコマンドは、 という名前のサブディレクトリを作成します。このサブディレクトリには、初期化した Git リポジトリに必要なファイルがすべて含まれています。このディレクトリは、上で説明した 3 つの領域の 1 つでもあります。このディレクトリは、Git がデータ レコードを保存する場所でもあります。これは非常に重要です必要な場合を除き、簡単に変更しないでください

ワークフローと基本操作

Git でプロジェクトを初期化するということは、Git を使用して現在のプロジェクト ファイルのバージョン レコードをさまざまな期間で管理することを意味しますが、このとき、プロジェクト内にすでに存在するファイル、またはこれから作成されるファイルは、Git を使用して管理されます。今後追加されるものもバージョン管理管理に入らない未追踪(Untracked)状態となっております。

ワークスペースのファイルステータスを表示する

git status

文字化けが表示された場合の対処方法

文字化けを表示する
git config --global core.quotepath false
端末の文字化け

メニュー -> 設定 -> テキスト -> ローカル/エンコーディング

または設定ファイルを変更する

进入windoes的cmd 然后分别输入以下五行
git config --global core.quotepath false
git config --global gui.encoding utf-8
git config --global i18n.commit.encoding utf-8
git config --global i18n.logoutputencoding utf-8
set LESSCHARSET=utf-8

入力が完了したらコマンドを実行します

ワークスペース ファイルをステージング領域に追加する

git add

git add 1.txt
# 添加多个文件
git add 2.txt 3.txt
# 添加整个目录
git add ./a
# 添加多个目录
git add ./b ./c
# 添加所有文件
git add .

バージョンの作成

git commit

ステージング領域の変更をローカル git リポジトリ、つまりこの作業に送信します (通常、特定の意味を持つ作業はバージョンとみなされ、複数のファイルへの変更である可能性があります)。

  • 各送信では、送信されたバージョンの一意の ID として 40 ビットのハッシュ値が生成されます。
メモを提出する

提出ごとにコメントが必要です

git commit
# 会调用默认(或自定义)的文本编辑器
デフォルトのエディタを変更する
git config core.editor notepad

# 添加 vscode 编辑器 - mac
# 通过 vim 打开环境变量配置文件
vim ~/.bash_profile
# 添加环境变量
export PATH=/Applications/Visual\ Studio\ Code.app/Contents/Resources/app/bin:$PATH
# 保存退出
source ~/.bash_profile
# 测试:在终端中直接通过命令 code 调用 vscode
git config --global core.editor "code --wait"
一行コメント
git commit -m 备注信息

コミットログを表示する

git log

// 完整格式
git log
// 简要格式(单行)
git log --oneline

コミットを修正する

git commit --amend

新しいコミット バージョンを追加せずに、新しく変更したコードを前のコミットに追加してコミットを修復 (以前のコミットを置き換え)

git commit --amend -m 提交

消去

git rm

# 从 git 仓库与工作区中删除指定文件
git rm 文件

# 只删除 git 仓库中的文件
git rm --cached 文件

# rm 以后,需要 commit 这次操作,否则 rm 将保留在暂存区
git commit -m 修正

リセットを元に戻す

git reset

ステージングエリアからワークスペースへの取り消し
// 从暂存区中撤销一个指定文件
git reset HEAD 文件名称
// 从暂存区中国年撤销所有文件
git reset HEAD .
このコマンドを使用してバージョンをロールバックできます
# 回退到指定的 commitID 版本
git reset --hard commitID

比較する

# 比较 工作区和暂存区
git diff 文件 
# 比较 暂存区和仓库
git diff --cached [commitId] 文件
# 比较 工作区和仓库
git diff commitId filename
# 比较 仓库不同版本
git diff commitId1 commitId2

支店

私たちの開発はゲームタスクのようなもので、デフォルトではメインライン(マスター)で開発されます。多くの場合、さまざまなサイド タスクがあり、git はプロジェクト開発用のブランチの作成をサポートします。

ブランチを表示する

git branch

ブランチを作成する

git branch 分支名称

分岐を切り替える

git checkout 分支名称
# 也可以使用 checkout -b 来新建分支
git checkout -b 分支名称

ブランチのマージ

# B 合并到 A,需要切换到 A 分支
git merge 被合并分支

# 查看已经合并的分支
git branch --merged
# 查看未合并的分支
git branch --no-merged

ブランチを削除する

# 如果分支为未合并状态,则不允许删除
git branch -d 分支名称
# 强制删除
git branch -D 分支名称

レコードをマージする

rebase

# 合并 HEAD 前两个祖先记录
git rebase -i HEAD~2
~と^

~ : ポートレート

^ : 風景

[外部リンク画像の転送に失敗しました。ソース サイトにはリーチ防止メカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします (img-3d94WqTi-1676979124417) (assets/path.png)]

リベース操作
# p, pick = use commit => 使用
# r, reword = use commit, but edit the commit message => 使用,但重新编辑说明
# e, edit = use commit, but stop for amending => 使用
# s, squash = use commit, but meld into previous commit => 使用,但合并上一次
# f, fixup = like "squash", but discard this commit's log message => 就像 squash 那样,但会抛弃这个 Commit 的 Commit message
# x, exec = run command (the rest of the line) using shell => 执行脚本
# d, drop = remove commit => 移除
git rebase -i HEAD~3
# 弹出编辑器,根据需要的进行修改,然后保存
# 如果为 r,s 则会再次弹出编辑器,修改新的 commit message,修改之后保存

問題がある場合は、再編集して保存することができますgit rebase --edit-todogit rebase --continue

マージ競合

場合によっては、異なるブランチが同じファイルの内容と場所で動作することがあり、マージ プロセス中に競合が発生する可能性があります。

  • 競合ファイルを表示する
  • 競合するコンテンツを修正する
  • 提出する

ラベル

場合によっては、特定の過去の投稿にいくつかのラベルを付けたいことがあります。

新しいタグ

git tag -a v1.0.0 HEAD/commitId

タグを表示

git tag

共同開発

上記の操作はすべてローカルに構築されますが、チームで共同開発を行う場合は、この時点で git ウェアハウスの情報をチーム全員で共有する必要があります。

  • 分散 - 集中化と分散化

ギットハブ

まずはアカウントを登録する

SSHリンクを使用する

SSH

https://help.github.com/cn/articles/connecting-to-github-with-ssh

https://help.github.com/cn/articles/generated-a-new-ssh-key-and-adding-it-to-the-ssh-agent

SSHキーを生成する
ssh-keygen -t rsa -C "[email protected]"
プロキシの追加

ssh-addエージェントを使用します。エージェントが開始されていない場合は、手動で開始できます

eval $(ssh-agent -s)
秘密キーを追加する
ssh-add 私钥路径
githubに公開キーを追加

パーソナル センター -> 設定 -> ssh -> 追加

テスト
ssh -T [email protected]

gitリモート

リンク
git remote add origin [email protected]:miaov-zmouse/kkb-test.git






リモートコミットを表示する
git remote -v
リモートを送信 (同期)

ローカル倉庫をリモートに同期する

git push origin -u master
# -u 简化后续操作
git push origin master
リモートブランチ
# 提交到远程(分支)
git push origin [本地分支名称]:[远程分支名称]

# 远程先创建好分支然后拉取到本地
git checkout -b [本地分支名称] origin/[远程分支名称]

# 拉取远程分支到本地
git pull origin [远程分支名称]:[本地分支名称]

# 查看远程仓库
git remote show origin

# 查看本地分支
git branch

# 查看远程分支
git branch -r

# 查看所有分支
git branch -a

# 删除本地分支
git branch -d [本地分支名称]

# 删除远程分支
git push origin --delete [远程分支名称]
# or
git push origin :[远程分支名称]

# 设置默认提交分支
git branch --set-upstream-to=origin/[远程分支名称] [本地分支名称]
ブランチを削除する

git remote remove origin

拡張機能: ワークフロー - git ワークフロー

[外部リンク画像の転送に失敗しました。ソース サイトにはリーチ防止メカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします (img-tqWGKVF3-1676979124418) (assets/gitflow.png)]

GUIツール

https://git-scm.com/download/gui/win

  • ソースツリー
  • 他の編集者

まとめ:
git をまとめると、cmd でコマンドを入力する方法と、コンパイラにプラグイン「Git History」をダウンロードしてグラフィカル ツールを使用する方法の 2 つに分かれます。
Git は完全に独学です。

おすすめ

転載: blog.csdn.net/www61621/article/details/129148601