使用ollama部署本地大模型(没有GPU也可以),实现IDEA和VS Code的git commit自动生成

详情

问豆包,提示词如下:收集下ollama相关信息,包括但不限于:官网地址/GitHub地址/文档地址

官网地址

https://ollama.com/

GitHub 地址

https://github.com/ollama/ollama

文档地址

https://github.com/ollama/ollama/blob/main/docs/README.md

安装

https://ollama.com/download

https://github.com/ollama/ollama/blob/main/docs/linux.md

bash 复制代码
curl -fsSL https://ollama.com/install.sh | sh

#模型位置
/usr/share/ollama/.ollama/models

model

https://ollama.com/search

没有GPU的可以下载3b以下的(我亲测过16C 32G的服务器),比如:

bash 复制代码
ollama run qwen2.5:3b

本文以32b为例,用的是RTX4090 24G:

bash 复制代码
ollama run qwen2.5:32b

IDEA

AI Commits插件:https://plugins.jetbrains.com/plugin/21335-ai-commits

配置:Settings > Tools > AI Commits

然后点击提交框上面那个图标就行了

目前GitMoji是最好的,但提示词也可自定义,我给大家列一些这个插件之前的:

复制代码
Generate a concise and standardized git commit message in {language} based on the code changes. Follow the conventional commit format, including:  1.Type: Use one of feat, fix, docs, style, refactor, test, chore, etc.  2.Scope: Specify the module or file affected (if applicable).  3.Subject: A short, clear description of the change (50 characters or less).  4.Body (optional): Provide additional context or details if necessary, but keep it brief.  Ensure the output is clean and does not include any unnecessary formatting (e.g., code blocks or extra symbols).  Here are the code changes: {diff} 

Generate a concise yet detailed git commit message using the following format and information:   <type>(<scope>): <subject>   <body>   <footer>   Use the following placeholders in your analysis:  - diff begin :  {diff}  - diff end.   Guidelines:   1. <type>: Commit type (required)     - Use standard types: feat, fix, docs, style, refactor, perf, test, chore   2. <scope>: Area of impact (required)     - Briefly mention the specific component or module affected   3. <subject>: Short description (required)     - Summarize the main change in one sentence (max 50 characters)     - Use the imperative mood, e.g., "add" not "added" or "adds"     - Don't capitalize the first letter     - No period at the end   4. <body>: Detailed description (required)     - Explain the motivation for the change     - Describe the key modifications (max 3 bullet points)     - Mention any important technical details     - Use the imperative mood   5. <footer>: (optional)     - Note any breaking changes     - Reference related issues or PRs   Example:   feat(user-auth): implement two-factor authentication   • Add QR code generation for 2FA setup  • Integrate Google Authenticator API  • Update user settings for 2FA options   Notes:  - Keep the entire message under 300 characters  - Focus on what and why, not how  - Summarize diff to highlight key changes; don't include raw diff output  Note: The whole result should be given in {language} and the final result must not contain '```' 

 You are a Git commit message generation expert. Please analyze the following code changes and generate a clear, standardized commit message in {language}.  Code changes: {diff}  Requirements for the commit message: 1. First line should start with one of these types:    feat: (new feature)    fix: (bug fix)    docs: (documentation)    style: (formatting)    refactor: (code refactoring)    perf: (performance)    test: (testing)    chore: (maintenance)  2. First line should be no longer than 72 characters  3. After the first line, leave one blank line and provide detailed explanation if needed:    - Why was this change necessary?    - How does it address the issue?    - Any breaking changes?  4. Use present tense  Please output only the commit message, without any additional explanations. 

VS Code

Git Commit Message Generator插件:https://marketplace.visualstudio.com/items?itemName=chenkai2.vscode-git-commit-message-generator

之前的用户提示词和系统提示词分别如下:

bash 复制代码
标题行格式为 <type>: <description>,字数不要超过50个,description如果不是中文,则翻译成中文。两个换行后,输出正文内容,每个要点作为一个符号列表,不超过70个字。type使用英文,description和正文用中文,如果不是,则翻译成中文。要点简洁清晰。

根据以下Git变更生成Git提交信息,格式为 <type>: <description>。文件:${files}变更内容:${diff}

感觉不好用,给它改了,参考的是上面的提示词:

bash 复制代码
 Generate a concise yet detailed git commit message using the following format and information:   <type>(<scope>): <subject>    Use the following placeholders in your analysis:  - diff begin :  ${diff}  - diff end.   Guidelines:   1. <type>: Commit type (required)     - Use standard types: feat, fix, docs, style, refactor, perf, test, chore   2. <scope>: Area of impact (required)     - Briefly mention the specific component or module affected   3. <subject>: Short description (required)     - Summarize the main change in one sentence (max 50 characters)     - Use the imperative mood, e.g., "add" not "added" or "adds"     - Don't capitalize the first letter     - No period at the end     Example:   feat(user-auth): implement two-factor authentication   • Add QR code generation for 2FA setup  • Integrate Google Authenticator API  • Update user settings for 2FA options   Notes:  - Keep the entire message under 300 characters  - Focus on what and why, not how  - Summarize diff to highlight key changes; don't include raw diff output  Note: The whole result should be given in ${files} and the final result must not contain '```' 

或者

bash 复制代码
 You are a Git commit message generation expert. Please analyze the following code changes and generate a clear, standardized commit message in ${files}.  Code changes: ${diff}  Requirements for the commit message: 1. First line should start with one of these types:    feat: (new feature)    fix: (bug fix)    docs: (documentation)    style: (formatting)    refactor: (code refactoring)    perf: (performance)    test: (testing)    chore: (maintenance)  2. First line should be no longer than 72 characters  3. After the first line, leave one blank line and provide detailed explanation if needed:    - Why was this change necessary?    - How does it address the issue?    - Any breaking changes?  4. Use present tense  Please output only the commit message, without any additional explanations.

然后点击提交框上面那个图标就行了(图片里面没有截取到),最近的提交都用这个了

常见问题

linux suspend resume cause to use CPU?

https://github.com/ollama/ollama/blob/main/docs/gpu.md#laptop-suspend-resume

On linux, after a suspend/resume cycle, sometimes Ollama will fail to discover your NVIDIA GPU, and fallback to running on the CPU. You can workaround this driver bug by reloading the NVIDIA UVM driver with

bash 复制代码
sudo rmmod nvidia_uvm && sudo modprobe nvidia_uvm

如何允许外网访问?

https://github.com/ollama/ollama/blob/main/docs/faq.md#setting-environment-variables-on-linux

bash 复制代码
sudo systemctl edit ollama.service

[Service]
Environment="OLLAMA_HOST=0.0.0.0"

sudo systemctl daemon-reload
sudo systemctl restart ollama
相关推荐
福大大架构师每日一题3 分钟前
ollama v0.18.2 发布!OpenClaw 安装优化、Claude 加速、MLX 量化全面升级
golang·ollama
我是人✓17 分钟前
IDEA(2017.3 x64)的安装及使用
java·ide·intellij-idea
路由侠内网穿透.23 分钟前
本地部署开源书签管理工具 LinkAce 并实现外部访问( Linux 版本)
linux·运维·服务器·网络·网络协议·开源
木斯佳41 分钟前
前端八股文面经大全:阿里云AI应用开发一面(2026-03-20)·面经深度解析
前端·人工智能·阿里云·ai·智能体·流式打印
q54314708744 分钟前
Redis Desktop Manager(Redis可视化工具)安装及使用详细教程
redis·git·bootstrap
ljh5746491191 小时前
linux awk 命令
linux·运维·chrome
von Neumann1 小时前
大模型从入门到应用——HuggingFace:Transformers-[AutoClass]
人工智能·深度学习·机器学习·ai·大模型·huggingface
向依阳1 小时前
RV1126准备-----编译和测试SDK自带的RKNN例程
linux·rv1226
中国胖子风清扬1 小时前
Camunda 8 概念详解:梳理新一代工作流引擎的核心概念与组件
java·spring boot·后端·spring cloud·ai·云原生·spring webflux