1. 分支与合并
分支允许您在不影响主分支的情况下试验代码更改。使用 git checkout
创建新分支,并在尝试新功能或修复错误时使用它。完成后,使用 git merge
将更改合并回主分支。
示例代码:
git checkout -b new-feature
// 在 new-feature 分支上进行更改
git checkout main
git merge new-feature
2. 暂存工作
使用 git add
将您要跟踪的更改添加到暂存区。这使您可以选择性地提交更改,而无需提交所有修改。
示例代码:
git add MyFile.java
3. 提交并推送
git commit
将暂存区的更改提交到本地存储库。然后,使用 git push
将更改推送到远程存储库,使其他团队成员可以访问。
示例代码:
git commit -m "Fixed bug in MyFile"
git push
4. 代码审查
Git 提供了审查代码的功能,以提高代码质量和协作。使用 git request-pull
创建合并请求,以便其他人可以审查您的更改并在合并之前提供反馈。
示例代码:
git request-pull main new-feature
5. 冲突解决
当多个开发人员同时对同一文件进行更改时,可能会发生合并冲突。使用 git mergetool
解决冲突,手动编辑文件或使用 git checkout -ours
或 git checkout -theirs
选择一方的更改。
示例代码:
git mergetool
6. 标签和版本
标签可以创建特定版本代码快照。使用 git tag
创建标签,然后使用 git checkout
切换到该版本。
示例代码:
git tag v1.0.0
git checkout v1.0.0
7. 远程跟踪分支
远程跟踪分支与远程存储库中的分支关联。使用 git remote add
将远程存储库添加到您的本地存储库,然后使用 git fetch
提取其分支。
示例代码:
git remote add origin https://github.com/my-org/my-repo.git
git fetch origin
8. 子模块
子模块允许您将外部存储库包含在您的项目中。使用 git submodule add
添加子模块,并使用 git submodule update
更新其内容。
示例代码:
git submodule add https://github.com/my-org/my-submodule.git
git submodule update
9. Git Hooks
Git Hooks 允许您在特定事件(例如提交或拉取)时自动执行自定义脚本。使用 git config
设置钩子,并使用脚本语言(例如 Bash 或 Python)编写脚本。
示例代码:
# pre-commit 钩子,在提交之前运行
git config core.hooksPath ~/.git-hooks
echo "#!/bin/bash" > ~/.git-hooks/pre-commit
echo "echo "You are about to commit"; exit 1" >> ~/.git-hooks/pre-commit
chmod +x ~/.git-hooks/pre-commit
10. Git Large File Storage (LFS)
LFS 允许您跟踪和管理大文件(例如图像或多媒体文件),而无需将其存储在提交历史记录中。使用 git lfs
安装 LFS,并用 git lfs track *.png
跟踪文件。
示例代码:
git lfs install
git lfs track *.png
总结:
通过掌握这些 Git 秘籍,Java 开发人员可以提高代码管理、协作和质量。从分支与合并到标签和子模块,Git 提供了全面的工具集,使团队能够高效地工作并创建更强大的应用程序。