简单来说,Git是个版本控制工具,而GitHub是基于Git的代码托管平台。你可以把Git想象成一辆车,GitHub就是停车场加维修站。在本地用Git管理代码,然后推到GitHub上备份和协作。刚开始用的时候,我总以为GitHub就是Git的全部,其实不是。Git本身是命令行工具,你可以用它在本地仓库里随便折腾,比如创建分支、提交更改,这些操作都不需要联网。但一旦你想和别人分享代码,或者备份到云端,GitHub就派上用场了。
先说说基本的操作吧。在GitHub上创建一个仓库后,你得先用命令把远程仓库克隆到本地。这个命令很简单,比如,就能把整个项目下载下来。然后你就可以在本地修改文件了。修改完后,用把文件添加到暂存区,再用提交更改。提交的时候,记得写个清晰的提交信息,不然以后回头看,都不知道自己干了啥。我就吃过这个亏,有一次提交信息写了个"fix bug",结果过了几周,完全忘了是修了哪个bug,还得翻代码找。
接下来就是把本地更改推送到GitHub上,用命令。这个命令会把你的提交上传到远程仓库。不过这里有个小技巧,如果你是第一次推,可能需要设置上游分支,比如。这样以后直接就行了。GitHub上还有个很实用的功能叫Pull Request(PR),这在团队协作里特别重要。比如你fork了一个项目,改完后想合并回原项目,就可以发起一个PR。原项目的维护者会审查你的代码,如果有问题,你可以继续修改。这个过程能避免很多冲突,我参与过一个开源项目,通过PR学到了不少代码规范的东西。
分支管理是Git在GitHub上的另一个亮点。你可以用创建新分支,比如,然后在这个分支上开发新功能,不会影响主分支。开发完后,再合并回主分支。GitHub的界面上可以直接看到分支的对比,很方便。不过合并的时候可能会遇到冲突,比如你和同事改了同一个文件的同一行。这时候就得手动解决冲突,用查看冲突文件,然后编辑文件,保留需要的部分,最后再提交。我第一次遇到冲突时,差点慌了,后来发现Git会标记出冲突的地方,慢慢就习惯了。
除了基本操作,Git在GitHub上还能集成很多工具,比如GitHub Actions,可以自动化测试和部署。我在项目里设置了一个Action,每次推送到main分支,就自动运行测试脚本,如果有错误,立马就能发现。这大大提高了效率,不用手动去检查了。另外,GitHub的Issue功能也挺好用,可以用来跟踪bug或新功能请求。结合Git的提交,你可以在提交信息里引用Issue号,比如"fix 123",这样GitHub会自动关联起来,方便管理。
当然,用Git和GitHub也不是一帆风顺的。常见的一个错误是忘记拉取最新更改,就直接推送,结果导致冲突。这时候可以用先更新本地仓库,再处理冲突。另一个坑是误删分支,好在Git有reflog功能,可以找回丢失的提交。总之,多练习、多犯错,慢慢就熟练了。
最后,建议大家多用GitHub来参与开源项目,不仅能提升技能,还能认识很多志同道合的人。我自己就是从一个小白开始,现在能熟练地用Git管理代码了。如果有问题,可以去GitHub的社区或者论坛问问,那里有很多热心人。希望我的经验对你有帮助,如果你有更好的技巧,欢迎分享!