新手必看:Git分布式版本控制与GitHub协作全攻略

发布时间:2026/7/18 22:17:52
新手必看:Git分布式版本控制与GitHub协作全攻略 你是否经历过这样的绝望熬夜写完的代码被误删想找回却无计可施和新同事协作时他的修改直接覆盖了你三天的成果项目瞬间崩盘你却连是谁改的都不知道又或者你想为项目添加一个新功能却生怕把原本稳定运行的版本搞砸如果你点头了那么恭喜你——Git正是为你解决这些问题的“后悔药”与“时光机”。作为当今最强大的分布式版本控制系统Git不仅能帮你精确记录每一次文件变动让你在任意版本间自由穿梭更是团队协作的基石。然而对于新手来说Git那抽象的工作区和暂存区概念、动辄十几个参数的命令确实像一堵高墙。别担心这篇文章正是为你打破这堵墙而生。我将带你从零开始用最通俗易懂的语言和实战命令一步步掌握Git核心操作并打通与GitHub远程仓库的协作全流程。无论你是学生、开发者还是技术爱好者跟着这份攻略走一遍你将从此告别“代码丢失恐惧症”自信地驾驭你的项目。git分布式控制系统github远程仓库cmd命令查看文本文件内容type 文件名 删除文件del 删除文件夹啊rd修改管理类修改文件cmd 变仓库git init #文件多了.git文件——版本库 创建文件 添加文件到仓库暂存区stagesgit add 文件名 #添加多个空格分开 提交文件到仓库git commit -m 说明内容 #全部提交,-m相当于添加注释 每次修改都要重复以上完整操作 git commit提交更改暂存区的所有修改提交到master分支查看查看仓库状态git status #modified需要提交的修改 查看具体修改内容git diff 文件名 #红色原内容、绿色现内容 查看工作区和版本库里面最新版本的区别:git diff HEAD -- 文件名 # 有输出说明有未提交改动 查看以往操作命令git relog #可以得到commit id 查看修改历史git log #显示-m后的说明内容乱码是commit id 如果嫌输出信息太多加上--prettyoneline参数回溯回到之前的版本git reset --hard HEAD^ ^是上一个版本^^是上两个版本 也可写成HEAD~100上100个版本推荐这种写法 HEAD是当前版本 通过commit id一般写前几位git reset --hard 1094a例也可以回溯到后面的版本 撤销暂存区修改git reset HEAD 文件名 --hard会回退到上个版本的已提交状态一般使用这个 --soft会回退到上个版本的未提交状态 --mixed会回退到上个版本未添加撤销修改从来没有被添加到版本库就被删除的文件是无法恢复的丢弃工作区的修改git checkout -- 文件名删除先手动删除 git rm 文件名 #功能与git add文件名差不多远程仓库github仓库可以作为备份也可协作登陆GitHub打开“settings”点击“SSH and GPG Keys”然后点“Add SSH Key”填上任意Title在Key文本框里粘贴C:\Users\Administrator\.ssh\id_rsa.pub文件的内容查看是否存在dir %USERPROFILE%\.ssh ssh-keygen -t rsa -C 邮箱创建SSH Keygit bash勾选Initialize this repository with a README自动我们创建一个README.md文件查看远程仓库命令git remote -v添加远程仓库右上角找到按钮点击new repositoryname填入文件名关联命令git remote add origin gitgithub.com:Github账户名/仓库名.git远程库的名字为origin在.git/config里4.本地库的所有内容推送到远程库:git push -u origin master 第一次推送要加-u 目的 把本地的master分支内容推送到远程新的master分支 把本地的master分支和远程的master分支关联起来后续上传命令去掉-ugit push origin master删除远程仓库1.git remote rm 仓库名2.在github网站删除远程仓库克隆git clone gitgithub.com:Github账户名/仓库名.git多人协作开发时每人克隆一个分支在不影响已上线的功能情况下开发新功能避免不可逆转的局面主分支可以独立运行将未push的分支整理为直线git log --graph --prettyoneline --abbrev-commit1.创建分支git checkout -b 分支名一般为dev git switch -c 分支名2.查看当前分支查看分支合并图git log --graphgit branch * 表示当前分支 git log --oneline --graph3.上传流程和master一样4.切换分支git checkout -b 分支名 #未创建 git checkout 分支名 git switch -c 分支名 #未创建 git switch 分支名 #已创建5.合并分支Git默认Fast forward模式合并分支时可能丢失分支信息不想删除合并时添加添加--no-ff参数merge成功自动提交merge失败不提交git merge 分支名6.删除分支git branch -d 分支名 强行删除git branch -D 分支名当前分支分割合并分支发生冲突时再次添加提交可以合并Bug分支创建分支来修复bug存储未完成工作git stash #可以存储多次 查看已存储的未完成工作git stash list 删除存储内容git stash drop 恢复存储内容不删除git stash apply 有多个存储内容时git stash apply 存储编号 恢复并删除存储内容git stash pop. 把某个提交的操作复制到当前分支git cherry-pick commidID分支多人协作查看远程库信息git remote 查看远程库详细信息git remote -v #没有推送权限就看不到push的地址 将本地提交推送到远程仓库git push 远程仓库名origin 分支名抓取分支远程克隆git clone gitgithub.com:账户名/仓库名.git 抓取最新提交git pull #失败则说明本地和远程未链接 git pull失败git branch --set-upstream-to远程库名origin/本地分支名 本地分支名标签在需要打标签的分支上git tag 标签名 #打在最新提交上 如果要给标签指定说明git tag -a 标签名 -m 说明内容 commitID 查看标签名git tag 给历史提交打标签git tag 标签名 commitID 查看标签信息git show #按字母顺序排序 删除标签git tag -d 标签名 删除远程标签 先删除本地标签 再删除远程标签git push origin :refs/tags/标签名 #冒号后是标签路径 推送标签到远程git push origin 标签名 推送所有标签到远程git push origin 标签名使用githubfork创建克隆仓库clone下载至此你已经完成了从Git小白到能独立协作开发者的蜕变我们从一个文件的修改开始逐步建立版本库穿梭于时空之间接着我们登陆GitHub学会了如何将本地代码安全地备份到云端并与他人共享最后我们涉足了Git最强大的分支管理领域掌握了并行开发、紧急修复Bug以及多人协作的标准流程。这些操作和命令并不是死记硬背的“咒语”而是你驾驭代码世界的“工具箱”。在未来的编程道路上git status和git log将成为你最常使用的“眼睛”而add、commit、push和pull将成为你与团队协作的肌肉记忆。当然Git的海洋远不止于此还有更高级的钩子Hooks、子模块Submodule和交互式变基Rebase等待你去探索。但请相信有了今天打下的坚实基础你将能轻松理解并掌握它们。最后送给你三句心法多提交勤推送—— 不要怕commit太多这是你安全的“存档点”。遇到冲突莫慌张—— 冲突不是bug是沟通的契机细心阅读冲突标记并解决它。不熟悉的操作先在测试仓库中练手—— 放心大胆地尝试错了就git reset大不了重新克隆。现在就打开你的终端从git init开始亲手建立一个属于你自己的仓库吧如果在实践过程中有任何疑问或希望了解更深度的技巧欢迎在评论区留言我们一起交流成长。祝你在版本控制的世界里游刃有余尽享编码的乐趣