Ubuntu Java代码版本控制如何进行
小樊
32
2025-12-28 02:22:52
Ubuntu Java代码版本控制实操指南
一 环境准备与安装
- 安装 Git:sudo apt update && sudo apt install -y git;验证:git --version。
- 配置全局身份:git config --global user.name “Your Name”;git config --global user.email “you@example.com”。
- 可选:安装构建工具(Maven/Gradle)以标准化依赖与构建;后续在 CI 中固定 JDK 版本 可提升可重复性。
二 初始化仓库与远程协作
- 新建项目:cd /path/to/java/project;git init;git add .;git commit -m “feat: init project”。
- 克隆仓库:git clone https://github.com/your_username/your_repo.git。
- 关联远程并推送:git remote add origin ;git branch -M main;git push -u origin main(若远程默认分支为 master,则使用 master)。
- 日常同步:git pull --rebase origin main(减少不必要的 merge 提交)。
三 Java多版本管理与构建配置
- 系统级切换(Ubuntu 自带):sudo apt install -y openjdk-8-jdk openjdk-11-jdk openjdk-17-jdk;sudo update-alternatives --config java;验证:java -version。
- 项目级/多版本灵活切换:
- jenv:git clone https://github.com/jenv/jenv.git ~/.jenv;在 ~/.bashrc 中加入 export PATH=“$HOME/.jenv/bin:$PATH” 与 eval “$(jenv init -)”;source ~/.bashrc;jenv add /usr/lib/jvm/java-11-openjdk-amd64;jenv global 11.0 或 jenv local 8.0。
- SDKMAN!:curl -s “https://get.sdkman.io” | bash;source “$HOME/.sdkman/bin/sdkman-init.sh”;sdk install java 11.0.11-open;sdk use java 8.0.292-open;sdk default java 11.0.11-open。
- 构建工具与 JAVA_HOME:
- Maven:在 pom.xml 设置 <maven.compiler.source> 与 <maven.compiler.target>(如 11 或 8)。
- Gradle:在 gradle.properties 设置 org.gradle.java.home=/usr/lib/jvm/java-11-openjdk-amd64。
- 建议:jenv/SDKMAN! 切换后,确保构建与运行使用同一 JDK。
四 协作规范与质量保障
- 分支策略:main 稳定、develop 集成、feature/ 功能、hotfix/ 紧急修复;合并前通过 PR/代码评审。
- 提交规范:采用约定式提交(如 feat/fix/docs/style/refactor/test/chore),配合语义化版本。
- 代码质量:使用 Checkstyle/SpotBugs/PMD;配置 Git 钩子(如 pre-commit)自动检测。
- 持续集成:在 GitHub Actions/GitLab CI 中以矩阵固定 JDK 11/17,执行构建与测试。
- 版本发布:结合 Git 标签(git tag v1.2.3)与构建产物归档,保证可追溯与可重复发布。
五 常用命令与常见问题
- 常用命令:
- 状态与历史:git status;git log --oneline --graph;git diff。
- 分支:git branch feature/x;git switch feature/x;git checkout main;git merge feature/x 或 git rebase。
- 远程:git remote -v;git fetch;git push -u origin main(首次推送建立上游跟踪)。
- 常见问题:
- 权限与认证:SSH(git@github.com:…)需配置 SSH 密钥;HTTPS 使用 Personal Access Token 或凭据存储。
- 分支冲突:git pull --rebase 或先 git stash;冲突后编辑标记文件,git add;git rebase --continue 或 git merge --continue。
- 误提交与回退:git reset --soft HEAD~1(保留更改);git reset --hard HEAD~1(谨慎丢弃);git revert(生成反向提交)。
- 换行与编码:统一 .gitattributes(如 * text=auto eol=lf);避免跨平台换行差异。
- 找不到 JDK:java -version 与 which java 检查;必要时在构建脚本中显式打印 JAVA_HOME 与版本。