1. Eclipse与Git/Gitee环境配置
第一次在Eclipse里用Git管理代码可能会有点懵,但别担心,跟着我的步骤走,半小时就能搞定全套配置。我刚开始用的时候也踩过不少坑,比如公钥配错了导致推送失败,或者分支搞混了把代码提交到了错误的地方。这些经验教训我都会在教程里帮你避开。
先说说为什么要配置全局用户。这就像你寄快递要写寄件人信息一样,Git需要知道是谁提交的代码。在Eclipse里配置特别简单:打开Window -> Preferences -> Team -> Git -> Configuration,点击Add Entry,分别输入user.name和user.email。我建议直接用公司邮箱或者Gitee注册邮箱,这样在团队协作时一眼就能认出是谁的提交。
配置公钥是连接Gitee的关键步骤。很多新手在这里容易出错,最常见的问题就是没把公钥完整复制到Gitee。具体操作是:在Eclipse里打开Preferences -> General -> Network Connections -> SSH2,选择Key Management标签页生成RSA密钥对。记住一定要把id_rsa.pub文件里的内容全部复制到Gitee的SSH公钥设置里,包括开头的"ssh-rsa"和结尾的邮箱。我遇到过好几次因为漏复制了开头或结尾的字符导致认证失败的情况。
2. 创建与关联Gitee仓库
在Gitee上创建仓库时有个小技巧:不要勾选"使用README初始化仓库",否则后面在Eclipse里推送时会遇到冲突。创建完空仓库后,回到Eclipse,在项目上右键 -> Team -> Share Project选择Git。这里Eclipse会自动帮你初始化本地仓库,比命令行方便多了。
我强烈建议在第一次提交前先创建开发分支。直接在Eclipse的Git Repositories视图里右键项目 -> Switch To -> New Branch,输入分支名比如"dev"。这样做的好处是保持master分支的纯净,所有开发都在dev分支进行,等测试通过后再合并到master。上周我就因为直接在master上开发,不小心把未完成的代码推送了上去,结果团队其他成员拉取后项目都跑不起来了。
第一次提交代码时,Eclipse的Git Staging视图特别有用。它把文件变更分成"Unstaged Changes"和"Staged Changes"两部分,你可以有选择地提交文件。我有个习惯:每次提交前都会仔细检查变更列表,确保不会把临时文件或IDE配置文件(比如.classpath)提交上去。曾经我就因为不小心提交了.idea文件夹,导致团队其他成员的项目设置被覆盖。
3. 代码提交与本地版本管理
Commit信息怎么写很有讲究。我见过太多"update"、"fix bug"这种毫无意义的提交信息了。好的提交信息应该像新闻标题一样简明扼要,比如"修复用户登录时的空指针异常"或者"新增订单导出Excel功能"。在Eclipse里提交时,建议勾选"Signed-off-by"选项,这样会附加你的签名信息,方便后期追溯。
有时候我们会误删文件或者改坏了代码,这时候Git的版本回退就派上用场了。在Eclipse里,右键项目 -> Team -> Show in History可以查看所有提交记录。找到想要恢复的版本,右键选择"Reset" -> Hard就能回退到那个时间点。不过要注意,hard reset会丢弃之后的所有更改,所以操作前最好先创建一个新分支备份当前代码。
分支管理是Git最强大的功能之一。在Eclipse的Git Repositories视图里,可以很方便地创建、切换和合并分支。我建议每个新功能都创建一个独立分支,开发完成后再合并到dev分支。合并时如果遇到冲突,Eclipse的冲突解决工具很直观:它会并排显示两个版本的代码,你可以逐行选择保留哪个更改。上周我合并分支时就遇到了20多处冲突,多亏了这个工具才没抓狂。
4. 远程仓库同步操作
Pull操作看似简单,但有几个细节需要注意。在Eclipse里右键项目 -> Team -> Pull时,建议勾选"Rebase instead of merge"选项,这样可以让提交历史更整洁。我遇到过merge导致的提交历史像蜘蛛网一样复杂的情况,后期排查问题特别痛苦。另外,Pull之前最好先Commit或Stash本地修改,否则可能会被Git拒绝。
Push到Gitee时如果用SSH方式失败,可以尝试换成HTTPS。有时候公司网络会限制SSH端口,这时候在Eclipse的Git Repositories视图里,右键Remotes -> Change Credentials,把远程URL改成HTTPS格式就能解决问题。推送成功后,建议立即到Gitee网页上确认代码是否完整,我有次因为网络问题导致推送中断,自以为成功了但其实只传了一半文件。
保持本地与远程同步有个小技巧:在Eclipse的Git Repositories视图里设置上游分支关联。这样每次Pull或Push时就不需要指定远程分支了。操作很简单:在本地分支上右键 -> Team -> Push to Upstream,之后这个分支就会自动跟踪对应的远程分支。这个设置帮我节省了大量重复输入分支名的时间。
5. 实战中的常见问题解决
最让人头疼的莫过于冲突解决了。当Pull时提示冲突,Eclipse会自动在文件里标记冲突位置(<<<<<<<和>>>>>>>)。我的解决流程是:先右键项目 -> Team -> Synchronize Workspace查看所有冲突文件,然后逐个文件解决。解决完后要记得标记为已解决(右键文件 -> Team -> Add to Index),最后Commit和Push。上周解决一个复杂冲突时,我发现Eclipse的"Compare With"工具特别好用,可以直观地对比三个版本(本地、远程和共同祖先)的差异。
有时候会碰到Eclipse的Git插件突然不工作的情况,比如Staging视图不显示变更。这时候可以尝试右键项目 -> Team -> Disconnect,然后重新Share Project。这个操作不会丢失Git历史,只是重新加载Git插件。我每个月都会遇到一两次这种情况,重新连接后就能恢复正常。
对于大型项目,我推荐使用.ignore插件来管理不需要版本控制的文件。在Eclipse Marketplace里安装.ignore后,可以自动生成.gitignore文件模板,避免把编译产物、日志文件等推送到仓库。之前我们项目就有人不小心推送了1GB的日志文件,把仓库撑爆了。有了.ignore插件,这类问题再没发生过。