仕事の効率を2倍にする: Gitの実用的なコマンド集

仕事の効率を2倍にする: Gitの実用的なコマンド集

1. バージョン管理を理解する

バージョン管理とは何ですか?本当に必要ですか?バージョン管理は、特定のファイルの内容の変更を記録し、将来特定のリビジョンを参照できるようにするシステムです。

分散バージョン管理システムとは何ですか?分散バージョン管理システム (略して DVCS)。

Git、Mercurial、Bazaar、Darcs などのシステムでは、クライアントは最新バージョンのファイルのスナップショットを抽出するだけでなく、元のコード リポジトリ全体をミラーリングします。このように、共同作業に使用されるサーバーに障害が発生した場合、ミラーリングされたローカル リポジトリを使用して後で復元できます。各抽出操作は実際にはコードリポジトリの完全なバックアップであるため

2. 一般的な Git コマンド

git システムの設定

git config -l

git-global 設定

git config --global --list # 可以设全局公用识别的邮箱和用户名git config --global user.name 'xxxxxx' git config --global user.email '[email protected]'

プロジェクト用の個別のgit設定

# 查看git config --list # 为项目设置单独的user.name和user.email git config user.name 'xxxxxx' git config user.email '[email protected]'

Gitの初期化

ローカル初期化

git init

リモートプル

git clone 远程仓库地址

ローカル倉庫とリモート倉庫の関連付け

# 本地-建立关联-远程git remote add origin 远程仓库地址# 本地-取消关联-远程git remote rm origin

Gitの保存とコミット

ステータスを表示

git status

すべてのファイル変更の詳細を表示

git diff HEAD

指定されたファイルの変更の詳細を表示します

git diff HEAD ./README.md

追加 保存

".": 変更されたすべてのファイル

git add .或git add ./home.vue

保存手順を追加(ローカルリポジトリに送信)

 git commit -m '对这次保存添加说明描述'

プルコード

複数の人と共同で開発する場合は、将来起こりうる競合を解決するために、提出する前にコードをプルダウンしてください。

 git pull origin 分支名

コードを送信

git push origin 分支名

Gitコミットログ

提出履歴を表示

過去のコミット レコードを表示すると、削除されたコミット レコードとリセット操作を除いて、コミットされたすべてのバージョン情報が表示されます。

 git log --pretty=oneline

表示されるバーの数を制御する

git log -30 --pretty=oneline

現在のブランチのバージョン進化情報をグラフィカルに表示する

git log --graph

作成者名でコミットレコードを表示する

git log --author="John"

キーワードで投稿履歴を検索

git log -S 关键词

日付順

git log --after="2023-2-1"

フィルタリングされたマージコミットを検索する

git log --no-merges or git log --merges

情報を送信を押してください

たとえば、チームのガイドラインでコミット メッセージに関連する問題番号を含めることが求められている場合は、次のコマンドを使用して、この問題に関連するすべてのコミットを表示できます。

 git log --grep="JRA-224:"

現在のバージョンフラグを確認する

Git reflog は、Git 操作のセキュリティ対策です。すべてのブランチのコミットや削除されたコミットなど、ローカル リポジトリ内のほぼすべての変更を記録できます。

 git reflog

Gitは特定のバージョンにロールバックします

以前のバージョンにロールバックする

git reset --hard HEAD^ # 回退上一个版本git reset --hard HEAD~3 # 回退上上上一个版本git reset --hard bae128 # 回退到某个版本回退点之前的所有信息。

HEADの説明:

  • HEADは現在のバージョンを示します
  • HEAD^ 以前のバージョン
  • HEAD^^ 以前のバージョン
  • HEAD^^^ 前のバージョン
  • 等々...

デジタル表現を活用できる

  • HEAD~0は現在のバージョンを示します
  • HEAD~1 前のバージョン
  • HEAD^2 以前のバージョン
  • HEAD^3 前の前のバージョン
  • 等々...

Git ブランチの指示

すべての支店を表示

git branch -a

ブランチを切り替える

git checkout 分支名

ローカルブランチを作成する

git branch 新分支名# 创建并切换到新分支git checkout -b 新分支名

指定されたバージョン番号に基づいてブランチを作成する

git checkout -b 分支名提交ID

ローカルブランチをリモートリポジトリにプッシュする

git push origin 新分支名

ローカルブランチを削除する

これは「安全な」操作です。Git は、マージされていない変更があるブランチの削除を防ぐためです。

 git branch -d 分支名

ローカルブランチを強制的に削除する

マージされていない変更がある場合でも同様です。特定の開発ラインに関連するすべてのコミットを永久に破棄したい場合は、このコマンドを使用できます。

 git branch -D 分支名

リモートリポジトリのブランチを削除する

git push origin --delelte 分支名

すべてのリモートリポジトリを表示

リポジトリソース名を表示する

git remote -v

リモートブランチリストを更新する

git remote update origin(仓库源名称) --prune

すべてのブランチをリモートリポジトリにプッシュする

git push origin(仓库源名称) --all

競合があっても、現在のブランチをリモートリポジトリに強制的にプッシュする

git push origin(仓库源名称) --force

Git マージブランチ

開発ブランチをマスターブランチにマージしたい

git checkout master # 首先切换到master分支上git pull origin master # 如果是多人开发的话需要把远程master上的代码pull下来git merge --no-ff develop # 然后我们把develop分支的代码合并到master上

git merge development と git merge --no-ff development の違い

git merge develop ==== > 结果就会变成A---B---C develop / master D---E---F

このステートメントを実行すると、develop は master の下流にあるため、master のポインターが直接移動し、master とdevelop の両方が C を指すようになります。

git merge --no-ff 機能を実行すると、結果は次のようになります。

 git merge --no-ff develop ==== > 结果就会变成A---B---C develop / \ D---E---F-----------G master由于--no-ff 禁止了快进,所以会生成一个新的提交,master 指向G。

マージされたコードの観点から見ると、結果は実際には同じです。違いは、--no-ff を使用すると Git が新しいコミット オブジェクトを生成することです。通常、比較的安定したコードを格納するメイン ブランチとして master を使用しますが、機能の開発には feature が使用され、断片化されたコミットが多数存在します。早送りマージでは、機能のコミット履歴がマスターに混在し、マスターのコミット履歴が混乱します。

Git タグ

タグリストを表示

git tag -l

ローカルでタグを追加する

git tag -a 标签名-m '版本说明'

タグ情報を表示

git show 标签名

ローカルでタグを削除する

git tag -D 标签名or git tag -d 标签名

ローカルタグをリモート倉庫にプッシュする

git push origin 标签名

リモートリポジトリタグを削除する

git push origin --delete 标签名

注記

  • cmd で log コマンドを使用すると、自動的に終了しません。終了するには、英語で手動で q を押す必要があります。

よくある Git エラー

1. 最後のコミットメッセージを変更する - コミットメッセージが間違っている

(編集するには i を押し、編集後は ESC を押します。保存して終了する場合は :wq を使用します。終了する場合は :q と入力します。間違えた場合は保存せずに終了し、:qa を使用します!)

 git commit --amend #该命令将打开编辑器,并允许更改最后一次提交消息

2. Gitはコミットを取り消したが、コンテンツをプッシュしない

git log git reset e102c05227bca7517554777f589f130305b69427 #保留提交之前的更改到工作区

3. 単一のファイルを指定したバージョンにロールバックする

git log vue.config.js #拿到文件提交记录ID git checkout e102c05227bca7517554777f589f130305b69427(commitID) vue.config.js #将文件还原到你想要还原的版本

4. 対立を解決する

すべての開発者がこのルールに従っている限り、競合の解決は非常に簡単な作業になります。

  1. たとえば、私のブランチは dev ブランチと呼ばれます。コードの修正は完了しましたが、競合があるかどうかはわかりません。
  2. dev ブランチで、git merge origin/master コマンドを実行して、リモートの master ブランチを現在の dev ブランチにマージします。エラーがない場合は、直接手順 5 に進みます。
  3. 競合がある場合は、プロンプトに従って解決し、ファイルを保存します。次に、git add xxx コマンドを実行して、変更したファイルをキャッシュ領域に追加します。次に、git commit -m "xxx" コマンドを実行してコミット情報を追加します。
  4. マスター ブランチに切り替えるには、次のコマンドを実行します: git checkout master。
  5. git pull コマンドを実行して、現在のマスター ブランチが最新のコードであることを確認します。
  6. devブランチのコードをmasterブランチにマージします: git merge dev
  7. コードを送信: git push。

<<:  Kubernetes でのイベント収集とアラートの監視

>>:  マルチクラウド時代が到来します。この記事で何をすべきかを学びましょう。

推薦する

Flux+Flagger+Istio+Kubernetes を使用して GitOps クラウドネイティブ プログレッシブ (カナリア) 配信を実装する

[[403388]]このガイドでは、Kubernetes と Istio を使用したプログレッシブ配...

ネットイースクラウドミュージック、中国国際ソフトウェア博覧会で教育や医療などの革新的なソリューションを発表

6月29日から7月2日まで、2018年ソフトウェア博覧会が北京で開催されました。 200社を超える著...

ウェブサイトの正確な包含を確認する方法

ウェブサイトを最適化する場合、含まれるコンテンツの量を最適化することが、最初に行う作業であることが多...

Xiongzhanghaoのアカウントインデックスを迅速に改善するにはどうすればよいですか?ガイドを添付します!

月給5,000~50,000のこれらのプロジェクトはあなたの将来ですXiong Zhang アカウン...

血みどろの教訓だ! SEO 初心者はなぜ失敗するのでしょうか?

SEO に情熱を傾ける初心者の方は、この記事を必ずお読みください。この記事は、SEO Qibing ...

無料のパーティープランニングウェブサイト Punchbowl - あなたのパーティーバトラー

多くの人がパーティーを開かない理由は、パーティーを開くのが面倒だからです。ご存知のとおり、パーティー...

プロダクトマネージャー向けウェブサイト最適化

ウェブサイトの検索エンジン最適化 (SEO) を行う理由:ウェブサイトのトラフィック ソースの中で、...

ベンチャーキャピタルはO2Oモデル企業に熱心で、投資額は70億元に迫っている

O2O (オンライン ツー オフライン) モデルはトレンドになりつつあり、オンラインの消費者を実際の...

クイックパケット-50USD/E3-1270/16GB RAM/1TB HDD/20TB フロー/G ポート/ロサンゼルス

quickpacket.com は確かに比較的長い歴史を持つホスティング会社です (2003 年設立...

7.10 カンファレンスまでのカウントダウン |エッジコンピューティングシナリオ向けにカスタマイズされた最初のモデル

昨今、「新しいインフラ」は間違いなくあらゆる方面から注目を浴びています。各業界における「新インフラ」...

SSDクラウドハードディスクが利用可能になりました。超高性能を割引価格でお楽しみください

最近、UCloud は新世代の SSD クラウド ハード ドライブを発売しました。最新の NVMe ...

ウェブサイトのプラグインを使用することでウェブサイトの粘度を効果的に向上できる方法の簡単な分析

どのような種類のウェブサイトを運営している場合でも、ウェブサイトの粘度が高く、多くのリピーターを獲得...

ユーザーエクスペリエンスと検索エンジンの親和性の両方を考慮したウェブサイトの設計方法

長い発展と変化の期間を経て、この基礎的なインターネット業界は、検索エンジンが人々の情報検索をますます...

ウェブサイトの外部リンクの蓄積についてどれくらいご存知ですか?

みなさんこんにちは、張柯です。私の記事を読んでいただいてとても光栄です。今日は外部リンク構築の問題に...

サービス - $10/年/5G ハードドライブ/25g トラフィック/cPanel パネル/仮想ホスト

Srvis を知らない人や聞いたことがない人はまだまだ多いのではないでしょうか。実際、Console...