検索
ホームページ開発ツールGit3 つの動きで完了します!クリーンな Git コミット記録を維持する

この記事では、「git commit –amend」、「git rebase -i」、「rebase」など、クリーンな Git コミット レコードを維持するための知識を提供します。質問です。皆さんのお役に立てば幸いです。

3 つの動きで完了します!クリーンな Git コミット記録を維持する

## 推奨される学習: 「

Git チュートリアル

誰もが、標準化された簡潔な方法でコードを記述する方法を学習しています

しかし、コードを標準化して簡潔にする方法を学ぶことはほとんどありません。現在、ソースコード管理ツールとして Git は基本的に誰もが使用しています。Git は柔軟性に優れています。さまざまなワークフローに応じてコードを送信/マージします。この柔軟性が適切に制御されていないと、多くの問題も発生します最もよくある問題は、Git ログの履歴が乱雑であることです。これは本当に老婦人の足の包帯のようで、臭くて長いです。私は個人的にこの種のログが嫌いです

#この問題の根本原因自由にコードを提出しています。

3 つの動きで完了します!クリーンな Git コミット記録を維持するコードは送信されましたが、保存する方法はありますか? 3 つのヒントで問題を完全に解決できます

git commit –amend を上手に活用しましょう

このコマンドのヘルプ ドキュメントは次のように説明されています:

--amend               amend previous commit

つまり、これは、

最後の送信

を変更するのに役立ちます。送信したメッセージだけでなく、送信したファイルも変更でき、最終的に最後のコミット ID を置き換えることができます。特定の送信中に特定のファイルを見逃す可能性があります。再度送信すると、役に立たないコミット ID が存在する可能性があります。全員がこれを行うと、git ログは徐々に乱雑になり、完全な関数を追跡できなくなります

次のように仮定します。このようなログ情報がある

* 98a75af (HEAD -> feature/JIRA123-amend-test) feat: [JIRA123] add feature 1.2
* 119f86e feat: [JIRA123] add feature 1.1
* 5dd0ad3 feat: [JIRA123] add feature 1
* c69f53d (origin/main, origin/feature/JIRA123-amend-test, origin/HEAD, main) Initial commit

最後のログ メッセージを変更するとします。次のコマンドを使用できます。

git commit --amend -m "feat: [JIRA123] add feature 1.2 and 1.3"

ログ情報をもう一度見てみましょう。が見つかりました。古いコミット ID 98a75af を新しいコミット ID 5e354d1 に置き換え、メッセージを変更しました。ノードは追加しませんでした。

* 5e354d1 (HEAD -> feature/JIRA123-amend-test) feat: [JIRA123] add feature 1.2 and 1.3
* 119f86e feat: [JIRA123] add feature 1.1
* 5dd0ad3 feat: [JIRA123] add feature 1
* c69f53d (origin/main, origin/feature/JIRA123-amend-test, origin/HEAD, main) Initial commit

これで、リポジトリ内のファイルは次のようになります:

.
├── README.md
└── feat1.txt

0 directories, 2 files

機能 1.3 を送信したときに、構成ファイル config.yaml を忘れて、ログを変更したり、新しいコミット ID を追加したくなかったとします。その場合、次のコマンドは非常に簡単に使用できます

echo "feature 1.3 config info" > config.yaml
git add .
git commit --amend --no-edit

git commit -- amend --no-edit は魂です。現在のリポジトリ ファイルを見てみましょう:

.
├── README.md
├── config.yaml
└── feat1.txt

0 directories, 3 files

git log を見てみましょう

* 247572e (HEAD -> feature/JIRA123-amend-test) feat: [JIRA123] add feature 1.2 and 1.3
* 119f86e feat: [JIRA123] add feature 1.1
* 5dd0ad3 feat: [JIRA123] add feature 1
* c69f53d (origin/main, origin/feature/JIRA123-amend-test, origin/HEAD, main) Initial commit

このテクニックを理解すると、すべての提出物に有効な情報が含まれていることを確認できます。プロセスを説明する図は次のようになります:

--no-edit のバフ ボーナスを使用すると、より強力になります

3 つの動きで完了します!クリーンな Git コミット記録を維持するうまく活用してくださいgit rebase -i

上記のログはすべて feature1 の開発中にあることがわかります。feature ブランチをメイン ブランチにマージする前に、ログ コミット ノードのマージを続行する必要があります。これが使用されます

git rebase -i HEAD~n

ここで、n は最後のいくつかの送信を表します。上記の機能 1 には 3 つの送信があるため、使用できます:

git rebase -i HEAD~3

実行後、vim エディターが次の内容で表示されます:

 1 pick 5dd0ad3 feat: [JIRA123] add feature 1
 2 pick 119f86e feat: [JIRA123] add feature 1.1
 3 pick 247572e feat: [JIRA123] add feature 1.2 and 1.3
 4
 5 # Rebase c69f53d..247572e onto c69f53d (3 commands)
 6 #
 7 # Commands:
 8 # p, pick <commit> = use commit
 9 # r, reword <commit> = use commit, but edit the commit message
10 # e, edit <commit> = use commit, but stop for amending
11 # s, squash <commit> = use commit, but meld into previous commit
12 # f, fixup <commit> = like "squash", but discard this commit's log message
13 # x, exec <command> = run command (the rest of the line) using shell
14 # d, drop <commit> = remove commit
15 # l, label <label> = label current HEAD with a name
16 # t, reset <label> = reset HEAD to a label
17 # m, merge [-C <commit> | -c <commit>] <label> [# <oneline>]
18 # .       create a merge commit using the original merge commit's
19 # .       message (or the oneline, if no original merge commit was
20 # .       specified). Use -c <commit> to reword the commit message.
21 #
22 # These lines can be re-ordered; they are executed from top to bottom.
23 #
24 # If you remove a line here THAT COMMIT WILL BE LOST.
25 #
26 #   However, if you remove everything, the rebase will be aborted.
27 #
28 #
29 # Note that empty commits are commented out</commit></oneline></label></commit></commit></label></label></commit></command></commit></commit></commit></commit></commit>

コミット ID をマージするために最も一般的に使用される方法は、squash と fixup です。前者にはコミット メッセージが含まれますが、後者には含まれていません。ここでは fixup を使用し、終了するには :wq を使用してください。

1 pick 5dd0ad3 feat: [JIRA123] add feature 1
2 fixup 119f86e feat: [JIRA123] add feature 1.1
3 fixup 247572e feat: [JIRA123] add feature 1.2 and 1.3

しましょうもう一度ログを見てください、非常に明確です

* 41cd711 (HEAD -> feature/JIRA123-amend-test) feat: [JIRA123] add feature 1
* c69f53d (origin/main, origin/feature/JIRA123-amend-test, origin/HEAD, main) Initial commit

リベースをうまく活用してください

上記の機能 1 は完全に開発されており、メイン ブランチも他の人によって更新されています。コードの競合を防ぐために、フィーチャーをメイン ブランチに戻します。最初にメイン ブランチの内容をフィーチャーにマージする必要があります。マージ コマンドを使用すると、追加のマージ ノードが存在し、変曲点も存在します。ログ履歴は直線的ではないため、ここでは機能ブランチで rebase コマンドを使用できます##

git pull origin main --rebase

pull コマンドは自動的にマージに役立ちますが、ここではリベースの形式で、log

* d40daa6 (HEAD -> feature/JIRA123-amend-test) feat: [JIRA123] add feature 1
* 446f463 (origin/main, origin/HEAD) Create main.properties
* c69f53d (origin/feature/JIRA123-amend-test, main) Initial commit

の feature1 関数を見てみましょう。メインの上部の送信ノードは依然として線形のままです。次に、コードをプッシュし、PR を送信し、コードをマージできます。 3 つの動きで完了します!クリーンな Git コミット記録を維持する

マージとリベースの違いを簡単に説明します:

ここでは git pullorigin main --rebase を使用して、メインを切り替え、最新のコンテンツをプルしてから元に戻すプロセスを省略します。これは 1 ステップで実行されます。その背後にある原則はすべて上の図に示されています。

リベースの使用には、従わなければならない黄金律があります。これについては以前にも述べたので、詳細は説明しません。

##概要

これらの 3 つのヒントについて, みんなの git ログは非常に明確になると思います。まだ知らない場合は、間違いなく使用できます。グループのメンバーが知らない場合は、間違いなく宣伝できます。この種のリポジトリはより健全に見えます。

推奨学習: 「

Git チュートリアル

以上が3 つの動きで完了します!クリーンな Git コミット記録を維持するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はCSDNで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
git and github:役割と機能を調査しますgit and github:役割と機能を調査しますMay 09, 2025 am 12:25 AM

ソフトウェア開発におけるGitとGithubの役割と機能は、コードと共同開発を管理することです。 GITは、コミット、ブランチ、マージ関数を通じてコードバージョンを効率的に管理し、GitHubはPullRequestや問題などのコードホスティングやコラボレーションツールを提供してチームのコラボレーション効率を向上させます。

Github:コードの発見、共有、貢献Github:コードの発見、共有、貢献May 08, 2025 am 12:26 AM

GitHubは、開発者がコードを発見、共有、および寄付するための優先プラットフォームです。 1)Pythonプロジェクトなどの検索関数を使用して、特定のコードベースを見つけます。 2)リポジトリとプッシュコードを作成して、世界中の開発者と共有します。 3)オープンソースプロジェクトに参加し、フォークとプルレクエストを通じてコードを提供します。

GithubでGitを使用:実用的なガイドGithubでGitを使用:実用的なガイドMay 07, 2025 am 12:11 AM

Gitはバージョン制御システムであり、GithubはGitに基づくオンラインプラットフォームです。コード管理とチームのコラボレーションにGitとGithubを使用するための手順には、次のものが含まれます。1。gitリポジトリの初期化:gitinit。 2.一時的なストレージエリアにファイルを追加:gitadd。 3.変更を送信:gitcommit-m "initialcommit"。 4。Githubリポジトリに関連する:gitremoteaddoriginhttps://github.com/username/repository.git。 5.コードをgithubにプッシュ:gitpush-uoriginmaste

Githubの影響:ソフトウェア開発とコラボレーションGithubの影響:ソフトウェア開発とコラボレーションMay 06, 2025 am 12:09 AM

GitHubは、ソフトウェア開発とコラボレーションに広範囲に影響を及ぼします。1。これは、コードセキュリティと開発の柔軟性を向上させるGITの分散バージョン制御システムに基づいています。 2。PullRequestなどの機能を通じて、チームのコラボレーション効率と知識の共有を改善します。 3。githubactionsなどのツールは、開発プロセスを最適化し、コードの品質を向上させるのに役立ちます。

GitHubの使用:コードの共有、管理、貢献GitHubの使用:コードの共有、管理、貢献May 05, 2025 am 12:12 AM

GitHubでコードを共有、管理、および寄稿する方法には次のものがあります。1。リポジトリとプッシュコードを作成し、ReadMeとライセンスファイルを書き込みます。 2。ブランチ、タグ、マージリクエストを使用してコードを管理します。 3.リポジトリをフォークし、PullRequestの貢献コードを変更して送信します。これらの手順を通じて、開発者はGitHubを使用して開発効率とコラボレーション機能を改善することができます。

Git vs. Github:比較分析Git vs. Github:比較分析May 04, 2025 am 12:07 AM

Gitは分散バージョン制御システムであり、GithubはGitベースのコラボレーションプラットフォームです。 GITはバージョン制御とコード管理に使用され、GitHubはコードレビューやプロジェクト管理などの追加のコラボレーション機能を提供します。

Git vs. Github:違いを理解していますGit vs. Github:違いを理解していますMay 03, 2025 am 12:08 AM

Gitは分散バージョン制御システムであり、GithubはGitに基づいたオンラインプラットフォームです。 GITはバージョン制御、支店管理、合併に使用され、GitHubはコードホスティング、コラボレーションツール、ソーシャルネットワーキング機能を提供します。

Github:フロントエンド、git:バックエンドGithub:フロントエンド、git:バックエンドMay 02, 2025 am 12:16 AM

Gitはバックエンドバージョン制御システムであり、GithubはGitに基づくフロントエンドコラボレーションプラットフォームです。 GITはコードバージョンを管理し、GitHubはユーザーインターフェイスとコラボレーションツールを提供し、2つは開発効率を向上させるために協力します。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。