検索
ホームページ開発ツールGitコア コードを保護するための重要な Git ヒントを共有してください。

前段階で核心代コードの保護機能が完了しました。目標は、核心代コードの修正および同時実行であり、レビューの回避を避け、上層での結果问题、提案された効果です。図は次のとおりです。

コア コードを保護するための重要な Git ヒントを共有してください。

実装プロセスでは、いくつかの段階で多くの Git テクニックが使用されます。このセクションの続きは次のとおりです。現在交換用の情報

# これは、

git config user.name

を介して、頻繁に使用される独自の多数の構成情報を保存しています。快捷键、用户信息、项目地址、分支信息等:<pre class='brush:php;toolbar:false;'>504318deMacBook-Pro % git config -l //快捷键 begin &gt;&gt;&gt; 我们可以定义自己的 git 快捷键 alias.st=status alias.co=checkout alias.cb=checkout alias.p=pull alias.pr=pull alias.pu=push alias.cm=commit alias.br=branch alias.cm=commit alias.undo=reset alias.rbc=rebase alias.save=stash alias.pop=stash //快捷键 end &lt;&lt;&lt; 我们可以定义自己的 git 快捷键 //用户名称和邮箱 begin &gt;&gt;&gt; user.name=zhangshixin user.email=shixin.zhang@xxx.com //用户名称和邮箱 end &lt;&lt;&lt; //项目和分支信息 begin &gt;&gt;&gt; remote.origin.url=git@gitlab.xxx:android/xxx.git remote.origin.fetch=+refs/heads/*:refs/remotes/origin/* branch.master.remote=origin branch.master.merge=refs/heads/master branch.Canary.remote=origin branch.Canary.merge=refs/heads/Canary //项目和分支信息 end &lt;&lt;&lt; pull.rebase=true //默认 pull 是 merge 还是 rebase</pre><h1 id="如何获取当前分支">如何获取当前分支</h1> <p>为了减少提示频率,最好只检测核心的分支的提交(包括 merge commit)。如何获取当前分支呢?有一个简单的方式:</p> <pre class="brush:php;toolbar:false">git symbolic-ref --short HEAD</pre> <p>这句命令主要包括两个关键字:<code>symbolic-refHEAD

symbolic-ref 可以读取、修改和删除符号引用。

什么是符号引用呢?它表示一个以 refs 开头的文件(比如 refs/heads/develop),这个文件保存着本地每个分支当前所处 commit。

我们可以打开 git 项目的 .git 文件夹,在其中的 refs/heads 文件夹中会保存各个分支当前所指向的 commit:

コア コードを保護するための重要な Git ヒントを共有してください。

HEAD 指的是 .git/HEAD,就是一个文件,保存着当前指向的符号引用:

コア コードを保護するための重要な Git ヒントを共有してください。

因此 git symbolic-ref --short HEAD 的含义就是读取 .git/HEAD 文件的内容,我这里就是 refs/heads/develop 文件,因此就得出当前分支是 develop 分支。

如何获取本地未 push 的所有 commit

有时候我们会在本地提交多次后再 push,因此在拦截 push 时,需要获取到当前要 push 的所有 commit 信息,然后获取每个 commit 修改的文件。

获取要 push 信息可以通过 git log @{u}.. --oneline:

504318deMacBook-Pro ShixinDemo % git log @{u}.. --oneline
4e4655b (HEAD -> master) 拦截跳转
f947180 修改文件

git log 非常强大,它可以有这些使用场景:

  1. 获取本地和远端的 commit 差异
  2. 获取指定时间内的提交记录,可以具体到谁、什么时候、修改了哪些
  3. 获取具体某次提交修改的文件

上面我们使用的参数 @{u}.. 就是表示获取本地和远端的 commit 差异,然后 --oneline 表示不打印具体信息,只打印 short commit id 和 commit message。

如果要获取指定时间内的提交记录,可以这样:

git log --pretty="%an(%cd) %h - %s" --since="2022-09-01" --no-merges --name-status

命令执行结果:

504318deMacBook-Pro ShixinDemo % git log --pretty="%an(%cd) %h - %s" --since="2022-09-01" --no-merges --name-status
zhangshixin(Fri Dec 16 22:34:49 2022 +0800) 4e4655b - 拦截跳转

M       app/src/main/java/com/example/heicdemo/MainActivity.kt
zhangshixin(Fri Dec 16 22:34:30 2022 +0800) f947180 - 修改文件

M       .idea/gradle.xml
M       .idea/misc.xml
D       .idea/runConfigurations.xml
A       android10_dem_heic_output.heic
A       app/src/main/assets/android10_dem_heic_output.heic
R100    app/src/main/res/drawable/mushroom.jpg  app/src/main/assets/mushroom.jpg
A       app/src/main/assets/mushroom.webp
M       app/src/main/java/com/example/heicdemo/MainActivity.kt
A       app/src/main/res/drawable/mushroom.webp
M       app/src/main/res/layout/activity_main.xml

pretty 的参数用于指定打印的内容和格式;since 参数用于指定查看时间范围;no-merges 表示过滤掉 merge 时生成的额外 commit;name-status 表示展示出文件的修改状态(M 表示修改;D 表示删除;A 表示增加;R 表示重命名)。

如何获取每个 commit 修改的文件

知道 commit ID 后,可以通过 git show --pretty="" --name-only $commitId 获取这个 commit 影响的信息:

04318deMacBook-Pro ShixinDemo % git show --pretty="" --name-only 4e4655b  
app/src/main/java/com/example/shixindemo/MainActivity.kt

git show 可以用来查看 commit 的 commit message 和修改的文件、文件具体内容等信息。上面的代码中我们使用了 name-only 参数表示只要查看修改的文件即可。

总结

这篇文章介绍了通过拦截 git push 时,获取当前用户、当前分支、未 push 的 commit 和修改的文件等命令,通过组合这些命令,就可以实现一个核心代码保护功能了!

以上がコア コードを保護するための重要な Git ヒントを共有してください。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はjuejinで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
Github:開発者とプロジェクトのためのプラットフォームGithub:開発者とプロジェクトのためのプラットフォームApr 13, 2025 am 12:01 AM

GitHubのコア機能には、バージョン制御、支店管理、コードレビュー、問題追跡、プロジェクト管理が含まれます。 1。バージョン制御とブランチ管理はGITに基づいており、コードの変更と実験開発の追跡を可能にします。 2。コードレビューは、PullRequestを通じて実装され、コードの品質とチームコラボレーションを改善します。 3.問題の追跡とプロジェクト管理は、プロジェクトの透明性とトレーサビリティを改善するために、問題とプロジェクト管理委員会を通じて実行されます。

github in Action:例とユースケースgithub in Action:例とユースケースApr 12, 2025 am 12:16 AM

GitHubは、ソフトウェア開発の効率と品質を向上させるための強力なツールです。 1)バージョン制御:GITを介してコードの変更を管理します。 2)PullRequests:コードレビューを実施し、コードの品質を改善します。 3)問題:バグとプロジェクトの進捗を追跡します。 4)githubactions:建設、テスト、展開プロセスを自動化します。

Git vs. Github:バージョンコントロールとコードホスティングGit vs. Github:バージョンコントロールとコードホスティングApr 11, 2025 am 11:33 AM

Gitはバージョン制御システムであり、GithubはGitベースのコードホスティングプラットフォームです。 GITは、コードバージョンを管理し、ローカル操作をサポートするために使用されます。 GitHubは、問題の追跡やPullRequestなどのオンラインコラボレーションツールを提供しています。

簡単な言葉でGitとは何ですか?簡単な言葉でGitとは何ですか?Apr 09, 2025 am 12:12 AM

GITは、開発者がファイルの変更を追跡し、協力してコードバージョンを管理するのに役立つオープンソース分散バージョン制御システムです。そのコア関数には、1)レコードコードの変更、2)以前のバージョンへのフォールバック、3)共同開発、4)並列開発のためのブランチの作成と管理。

gitはgithubと同じですか?gitはgithubと同じですか?Apr 08, 2025 am 12:13 AM

gitとgithubは同じものではありません。 Gitはバージョン制御システムであり、GithubはGitベースのコードホスティングプラットフォームです。 GITはコードバージョンの管理に使用され、GitHubはオンラインコラボレーション環境を提供します。

HTMLにGitHubを使用する方法は?HTMLにGitHubを使用する方法は?Apr 07, 2025 am 12:13 AM

GitHubを使用してHTMLプロジェクトを管理する理由は、バージョン制御、共同開発、作品の提示のためのプラットフォームを提供するためです。特定の手順には次のものが含まれます。1。gitリポジトリの作成と初期化、2。htmlファイルを追加および送信します。3。githubにプッシュ、4。githubpagesを使用してWebページを展開します。さらに、GitHubは、HTMLプロジェクトの最適化とコラボレーションを支援するために、コードレビュー、発行、およびPullRequest機能もサポートしています。

gitまたはgithubから始めるべきですか?gitまたはgithubから始めるべきですか?Apr 06, 2025 am 12:09 AM

GITから始めることは、バージョン制御原則を深く理解するためにより適しており、GitHubから始めることは、コラボレーションとコードホスティングに焦点を当てるのに適しています。 1.GITは、コードバージョン履歴の管理に役立つ分散バージョン制御システムです。 2。Githubは、Gitに基づいたオンラインプラットフォームであり、コードホスティングとコラボレーション機能を提供します。

MicrosoftはGitまたはGithubを所有していますか?MicrosoftはGitまたはGithubを所有していますか?Apr 05, 2025 am 12:20 AM

MicrosoftはGitを所有していませんが、Githubを所有しています。 1.GITは、2005年にLinus Torvazによって作成された分散バージョン制御システムです。2。Githubは、GITに基づくオンラインコードホスティングプラットフォームです。 2008年に設立され、2018年にMicrosoftに買収されました。

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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

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

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

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

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター