FEATURED · 精选文章

Git新手入门:从安装配置到Gitee上传的完整避坑指南

发布时间 / 2026/9/15 13:25:26
来源 / 创域科博编辑部
栏目 / 资讯中心
Git新手入门:从安装配置到Gitee上传的完整避坑指南 我刚带完一批新人入职发现一个特别有意思的现象很多同学在学校里就学过Git简历上也写着熟练使用Git但真正让他把代码推到Gitee仓库却会卡在密钥配置、分支冲突、push被拒这些环节上一卡就是半天。这篇文章就是写给这类朋友的也适合所有想系统入门Git的零基础读者。我会以Gitee为主要演示平台把安装、配置、日常命令、常见坑全部过一遍内容基于我在Windows环境下的实操经验尽量做到每一步都能照着做、做不错。1. 为什么我强烈建议新手从Git开始学版本控制1.1 版本控制的本质给代码拍快照很多人第一次听说Git脑子里冒出来的是好复杂命令行好可怕。其实你完全可以换一个角度理解Git就是一个给代码拍快照的工具。你写了一个功能能跑了拍一张快照改了几行代码弄坏了不怕切回上一张快照就行。拍快照这个动作在Git里叫commit提交。每一次commit都会记录谁在什么时间改了哪些文件、改了什么内容、为什么改。这个为什么就是提交时写的那句话叫提交信息。版本控制不是为了记流水账是为了让你在出错时能从容回退也让多人协作时知道每个改动是谁做的。所以别嫌提交麻烦它是你的后悔药。1.2 单人开发也要用Git的两个理由我知道很多新手会想我就一个人写项目要什么版本控制这想法我太熟悉了因为我自己也这么干过。但后来我吃到苦头了一次大重构改崩了CtrlZ按了二十下也没恢复到理想状态最后只能凭记忆重写耗时一天。单人开发也建议用Git至少两个理由容错。改动前先commit改崩了随时回滚心理负担小很多。备份。代码推到Gitee远程仓库后相当于多了一份异地备份电脑硬盘挂了也不怕。所以这篇文章虽然会讲协作但一开始你一定要明白Git首先是你自己的效率工具不是公司的行政要求。1.3 Git与Gitee/GitHub的关系新手最容易混的一个概念Git和Gitee到底什么关系打个比方。Git是一个分布式版本控制系统它本身是个软件装在你电脑上负责管理本地代码的历史版本。Gitee码云是国内流行的代码托管平台它提供了一个远程服务器让你的代码可以存放在云端方便备份、分享和协作。GitHub是国外的同类平台但国内访问起来偶尔不稳定所以新手入门我更推荐直接用Gitee中文界面、国内访问快、私有仓库免费。简单说Git管本地Gitee管云端两者通过命令或图形工具对接。2. Windows环境下的Git安装与Shell选择2.1 下载安装包不要纠结选哪个版本Git官方下载页面在Windows下会有两个选择32-bit和64-bit。现在绝大多数电脑都是64位系统选64位即可。不确定的话在系统设置里看关于就能查到系统类型。具体安装包可以从Git官网下载国内也可以从Gitee或者其他镜像站找。下载完成后双击运行接下来就是一路Next不是的有几个选项值得认真看一眼虽然现在改也来得及安装后随时可以调整配置。另外很多人下载时会犹豫选Git for Windows还是Minimal Git建议选完整版Git for Windows它自带Git Bash、Git GUI、Git Credential Manager等组件后面都用得上。2.2 安装向导里那几个选项到底怎么选安装过程中有几步新手容易卡住我直接给你结论选择编辑器默认是Vim新手容易进去不知道怎么退出建议选Notepad或VS Code前提是你装了。调整PATH环境变量选中间那项Git from the command line and also from 3rd-party software。这种模式下git命令在CMD、PowerShell、Git Bash里都能用。换行符转换选默认的Checkout Windows-style, commit Unix-style line endings即可先不用改。终端模拟器选默认的MinTTY。额外选项启用文件系统缓存可以勾上符号链接那个别勾Windows下权限麻烦。这些选择不是不能改但按我说的选新手阶段最省心。2.3 Git Bash与系统终端的区别装完Git后你的开始菜单里会出现Git Bash和Git GUI两个新程序。很多人不理解Git Bash是干嘛的以为它和cmd、PowerShell一样。Git Bash是在Windows上模拟的一个Linux风格终端环境里面可以运行大部分Linux命令比如ls、cd、pwd、mkdir当然也能运行git命令。为什么教程里都推荐用Git Bash因为Git本身脱胎于Linux生态很多文档、命令示例都是Linux风格用Git Bash更不容易踩命令不兼容的坑。我个人的建议是新手阶段统一用Git Bash操作。等熟悉了再去用PowerShell或者其他终端也不迟。避免今天在cmd里敲ls报错、明天在PowerShell里为路径空格转义头疼。验证安装是否成功在Git Bash里输入git --version能输出版本号说明安装好了。这一步建议每个人都做不要跳过。3. 第一次提交前必须搞清楚的三个配置项3.1 user.name和user.email是提交的身份证Git每次commit都会记录提交者信息这个信息来自全局配置。很多人第一次提交后发现Gitee上显示的提交者不是自己或者显示一个乱七八糟的名字就是因为没配置或者配置错了。配置命令在Git Bash里执行git config --global user.name 你的名字 git config --global user.email 你的邮箱--global表示全局生效也就是这台电脑上所有仓库都用这个身份。如果某个项目想用不同身份可以在项目目录里去global配置或者直接改这个仓库的配置。验证配置是否生效git config --global --list这里有个隐藏坑邮箱最好用Gitee账号绑定的邮箱这样Gitee才能把提交记录关联到你的账号上。如果用了一个没绑定的邮箱代码能推上去但头像和账号对不上。3.2 换行符转换Windows用户的第一个大坑Windows和Linux系统在文本文件的换行符上不一样。Windows用CRLF回车换行Linux/macOS用LF换行。如果不管这个差异可能会出现这种情况明明只改了一行代码git diff却显示整个文件都变了因为每一行的换行符都被改了。Git为此设计了autocrlf机制。安装时默认选的Checkout Windows-style, commit Unix-style line endings其实对应的就是这个配置git config --global core.autocrlf true意思是从仓库检出到工作区时把LF转成CRLF提交时再把CRLF转回LF。这样仓库里统一存LF本地Windows习惯用CRLF两全其美。如果你用的代码编辑器非常智能比如VS Code默认处理得挺好也可以试一下core.autocrlf false但新手阶段别折腾保持默认即可。3.3 默认分支名设置Git默认分支名在不同的版本和初始化方式下可能是master也可能是main。Gitee新建仓库默认分支通常叫master而GitHub新仓库默认是main。如果本地初始化的分支名和远程不一致推送时就得用git push -u origin 分支名来指定不指定就容易看到remote: Repository not found之类的提示或者push时提醒你说远程分支不对应。为了避免这种混乱我建议统一设置默认分支名为maingit config --global init.defaultBranch main这样本地新建仓库默认分支就是main。不过在Gitee上创建仓库时如果把默认分支设成master后面推送时注意用-u参数关联也可以直接在Gitee仓库设置里把默认分支改成main两边保持一致省心很多。4. Gitee仓库创建与SSH远程连接配置4.1 在Gitee上创建仓库注册并登录Gitee之后右上角点那个新建仓库按钮会进入仓库设置页。这里有几个字段要填仓库名称必填建议用英文小写和短横线比如my-first-project。路径会自动根据仓库名生成可以改用于访问地址。仓库介绍选填写清楚项目用途就行。开源许可证按需选择不确定就选不使用后面可以补。初始化仓库可以勾选使用Readme文件初始化这个仓库新手我建议勾上这样仓库里会有一个README.md方便理解仓库结构。选择分支模型单分支还是单分支子分支选单分支就够用。选择语言比如Java、Python、JavaScript等主要是给Gitee做代码分析和展示用不选也不影响。.gitignore模板根据你的语言选择。比如Python项目选Python模板Git会自动帮你在仓库里放一份.gitignore把缓存文件、编译产物、虚拟环境目录等不需要入库的文件忽略掉。开源许可证这个单独说一下在下面4.2细讲。创建完成后仓库页面会显示一个远程地址通常有两种格式HTTPS地址和SSH地址。需要注意的是如果仓库是私有的HTTPS方式推送时每次都要输用户名密码或TokenSSH方式配好密钥后就不用反复输。4.2 开源许可证怎么选很多新手创建仓库时会在开源许可证这里卡住不知道MIT、Apache-2.0、GPL-3.0到底有什么区别。简单说不选代码默认保留所有权利别人只能看不能合法使用、复制、分发。MIT最宽松别人用了你的代码只要保留版权声明就行商用也没问题。Apache-2.0和MIT差不多宽松额外包含专利授权条款对大公司更友好。GPL-3.0要求别人如果基于你的代码做了修改并发布也必须用GPL协议开源所谓的传染性。我的建议个人学习项目选MIT就好了简洁省事。如果公司或课程有指定要求按指定来。搞不清的情况先选不使用以后删掉仓库重建或者改协议都行。4.3 生成SSH密钥SSH密钥是一对公钥和私钥。简单理解公钥放在Gitee服务器上私钥留在本地两端一配对推送代码时服务器就能确认这是本人。在Git Bash里执行ssh-keygen -t rsa -b 4096 -C 你的邮箱执行后会让选择保存位置默认路径是~/.ssh/id_rsa直接回车即可。接着会让设置密码passphrase这里可以回车留空也可以设一个口令留空最方便。生成后在Git Bash里查看公钥cat ~/.ssh/id_rsa.pub会把一串以ssh-rsa开头的长文本打印出来复制它。注意复制的是.pub结尾的这个文件内容不是另一个没有.pub的文件那个是私钥绝不能外泄。4.4 在Gitee添加公钥进入Gitee网站右上角头像 - 设置 - 安全设置 - SSH公钥点添加公钥。标题可以随便填比如我的Windows电脑公钥框里粘贴刚才复制的内容提交即可。这里一个常见问题同一台电脑多个平台怎么处理比如我在Gitee和GitHub都要用可以生成多个不同的密钥也可以在~/.ssh目录里配置config文件让不同域名走不同密钥。但这是进阶内容新手阶段用一把密钥同时配Gitee和GitHub其实也能用允许同一个公钥加到不同平台。添加公钥后建议做一个验证在Git Bash执行ssh -T gitgitee.com第一次会提示确认主机指纹输入yes回车。如果看到类似Hi 你的用户名! Youve successfully authenticated的欢迎语说明密钥配置成功了。4.5 验证连接验证连接的另一种方法就是直接尝试clone一个仓库。比如在Gitee上找任意一个公开仓库复制它的SSH克隆地址在本地执行git clone gitgitee.com:用户名/仓库名.git能正常拉下来说明SSH完全走通。有些新手指定的账号密码方式也能克隆但后面push时要反复输入特别烦所以SSH免密这一步值得一次配好。5. 日常开发最高频的10条Git命令5.1 本地三件套add/commit/statusGit命令那么多新手不需要一开始全记住。日常本地开发最核心的就三个git status git add . git commit -m 提交信息git status用来查看当前工作区状态哪些文件改了、哪些是未跟踪的、当前在哪个分支都会显示出来。这是个高频命令我几乎每次操作前都会敲一遍。git add . 表示把当前目录下所有改动加入暂存区。暂存区这个概念新手可能不太好理解可以看成是一个待提交清单只有加进清单里的文件commit时才会被记录。如果想加某个具体文件就写git add 文件名。git commit -m 描述 才是真正拍快照-m后面跟的是本次提交的说明建议写清楚做了什么比如修复登录页表单校验bug而不是update。我见过很多新手从来不用git status直接add然后commit出了错也不知道错在哪。建议养成习惯commit前先git status确认要提交的内容确实符合预期。5.2 远程三件套clone/push/pull本地玩得转之后就要和Gitee对接了。最常用的远程操作是三个git clone 仓库地址 git push git pullgit clone 是把远程仓库完整复制到本地包含所有历史记录和分支。它通常只在第一次拿代码时用一次。git push 是把本地提交推送到远程也就是上传代码。git pull 是把远程最新代码拉取到本地也就是下载更新。这里有个初学者容易误解的点push是上传自己新增的提交pull是同步别人的提交。在多台电脑或多个同学协作时push之前先pull是一个好习惯能减少冲突。如果你运行git push时因为远程有本地没有的提交而被拒绝意思是远程仓库比本地新需要先git pull再push。5.3 查历史的log/diff/branch等代码量上来之后你会需要看历史记录git log --oneline这条命令用简洁格式显示提交历史每条提交显示一个短哈希值和提交信息。加上--oneline尤其适合新手比默认的完整格式好读太多。git diff用来查看工作区还没有被add的改动内容。注意如果已经add过了git diff默认看不到差异需要用git diff --cached。git branch查看当前仓库有哪些分支前面带*号的是当前分支。分支是Git里非常重要的概念一个仓库可以同时存在多条开发线互不干扰。新手入门阶段别急着学复杂的合并和rebase先把在默认分支上提交、推送、拉取这件事跑顺再逐步接触分支。5.4 关于命令的记忆方法Git命令不好记一个常见心法是动词 对象add是添加commit是提交push是推pull是拉clone是克隆status是状态log是日志。把这些动词先记牢具体参数用到再查。不要试图一次性背完所有命令更不要下载一堆所谓命令大全然后吃灰。最高效的方式是先在本地小项目里反复用add/commit/status形成肌肉记忆之后再配合Gitee把push/pull/clone搞熟。其余的rebase、cherry-pick、stash、tag等你真正遇到对应场景再去查效果最好。6. 上传代码到Gitee的完整实战从空仓库到首次push6.1 场景A全新项目首次上传这是最典型的场景本地有一个写好的项目文件夹想在Gitee上建一个仓库把代码传上去。第一步Gitee上新建一个空仓库不要勾选用README初始化拿到仓库的远程地址。第二步在本地项目文件夹里右键打开Git Bash或者cd到项目目录初始化仓库git init这时文件夹里会多出一个隐藏的.git目录这就是Git的本地版本库。第三步查看状态并添加文件git status git add .第四步提交git commit -m Initial commit第五步关联远程仓库并推送git remote add origin 你的远程仓库地址 git branch -M main git push -u origin main解释一下这几条remote add是把远程仓库起一个名字叫origin这是约定俗成的默认名branch -M main是把当前分支改名成mainpush -u是推送并建立本地main分支和远程main分支的追踪关系以后直接用git push就能推送。推送过程中如果让你输账号密码说明你用的是HTTPS地址会提示输入Gitee的用户名和密码密码是账号密码不是SSH密钥也可以改用SSH地址来免密。6.2 场景B已有本地仓库关联远程有时候我已经在本地git init并提交了好几次才想起要在Gitee建仓库。这时候不需要重新init只需要关联远程并推送git remote add origin 远程地址 git push -u origin main如果推送时提示远程仓库里已经有内容比如你创建仓库时勾选了README初始化会拒绝推送。解决办法是把远程已有内容先pull下来合并git pull origin main --allow-unrelated-histories--allow-unrelated-histories的意思是允许合并没有共同历史的两条分支本地空历史和远程README历史这是新手容易卡住的点。合并后再推送git push -u origin main6.3 场景C克隆远程仓库到本地跟场景A相反有时候是远程仓库已经存在比如公司项目或同学的项目需要把它拉到本地。这时只需要git clone 仓库地址比如git clone gitgitee.com:用户名/仓库名.git执行完后当前目录下多出一个以仓库名命名的文件夹里面就是完整的项目代码和Git历史记录。不需要git init因为clone下来的仓库自带.git目录。6.4 提交信息规范提交信息是写给人看的也是写给未来的自己看的。我强烈建议新手从一开始就养成写清楚提交信息的习惯。推荐格式类型(范围): 简要描述类型可以是feat新功能、fix修复bug、docs文档、style格式、refactor重构、test测试等。范围是可选的文件名或模块名。例如git commit -m feat(login): 增加短信验证码登录功能 git commit -m fix(cart): 修复购物车商品数量不更新的问题这样提交历史一眼扫过去就知道每个版本做了什么配合git log --oneline查看清晰度提升一个档次。7. 新手最容易踩的坑与排查思路7.1 git无法识别为cmdlet、函数...怎么办很多人在Windows的PowerShell或CMD里输入git命令报错内容大概是无法将git项识别为 cmdlet、函数、脚本文件或可运行程序的名称。这个报错的本质是系统找不到git.exe这个文件也就是PATH环境变量里没有git的安装目录。解决办法有两种第一种重新运行Git安装程序在调整PATH那一步改成第二项Git from the command line and also from 3rd-party software安装完重启终端。第二种手动添加环境变量。找到git.exe所在路径一般是C:\Program Files\Git\cmd在系统属性 - 环境变量 - Path里新增这个路径然后重新打开终端。对应的排查思路是先确认git到底装没装。打开开始菜单找到Git Bash在里面执行git --version如果Git Bash能用就说明软件装了是环境变量的事。如果Git Bash也不认识git大概率是安装出了问题重装最省事。7.2 push被拒远程有本地没有的提交我给新人讲Git时最常见的报错场景就是! [rejected] main - main (fetch first)意思是远程仓库里有你本地没有的提交Git出于安全考虑拒绝了你的推送。这种情况常常出现在你在Gitee网页上直接改过文件比如编辑README而本地不知道。处理方式很直接git pull origin main git pushpull的时候如果提示冲突说明双方改了同一处内容需要手动解决。解决冲突的流程是打开冲突文件找到、、标记保留想保留的部分删掉标记然后add、commit再push。新手看到冲突标记会慌其实没那么可怕。Git只是把两边内容的差异用特殊标记标出来你来做裁判决定留哪边。7.3 免密配置失败为什么每次push还要密码SSH密钥配置了也用ssh -T验证成功了但push时还是要密码。这种情况多半是远程地址用的是HTTPS而不是SSH。检查一下git remote -v如果输出的是https://gitee.com/xxx.git那就说明你在用HTTPS协议。改成SSH地址git remote set-url origin gitgitee.com:xxx.git改完再push应该就不再要密码了。如果你确实想用HTTPS而且不想每次输密码Windows下可以借助Git Credential Manager第一次输入凭据后它会帮你记住之后再也不用输。我没细讲配置过程因为SSH一次配好是更通用的方案换电脑也方便。7.4 提交错了、文件传错了怎么回退新手几乎都会遇到 committed 之后才发现提交内容不对或者commit信息写错了。常用的两个回退手段一是修改最近一次提交的信息git commit --amend -m 新的提交信息拿个例子你commit之后发现信息写错了用它改就好。注意它本质是生成一个新提交替换旧提交已经push到远程的情况下需要git push --force才能同步推之前想清楚。二是回退到某个历史版本git reset --soft HEAD~1git reset --soft表示回退到上一个提交但保留工作区改动。如果想连暂存区一起重置用git reset默认mixed如果想把改动也丢弃用git reset --hard。其中--hard操作不可轻易用它会删除工作区未提交的修改无法找回。我一般建议新手尽量用--soft和git revertrevert是生成一个反操作提交不动历史更安全。7.5 Gitee批量删库和删除文件的注意事项Gitee网页端不支持批量删除仓库一次只能进一个仓库的管理页面去删除删除前还需要输入仓库名称确认。有的同学想用脚本批量调用接口删库官方也不太建议而且很容易触发风控。所以如果你想整理多个仓库老老实实一个一个手动删别图快。删除仓库里的文件时也要谨慎。常规做法是本地删除文件 - git add -A - git commit - git push。也可以直接在Gitee网页上删除但会直接生成一个提交会影响远程历史本地下次pull时会删除这些文件。如果误删了可以使用git log找到删除文件的提交用git revert或git reset找回过程比较繁琐所以删之前先确认再动手。8. 让Git更好用的周边工具8.1 TortoiseGitWindows上的小乌龟很多新手看到命令行就头皮发麻那可以从TortoiseGit开始。它安装后会在Windows资源管理器右键菜单里出现一堆图标操作直观提交、拉取、推送、日志全部通过图形界面完成。装TortoiseGit之前要先装好Git本体其实就是装Windows上的Git然后再装小乌龟语言包也可以一并安装它支持中文界面。个人项目的日常操作小乌龟完全够用。但我还是要提醒图形界面虽然方便看懂底层命令仍然有必要因为你迟早会遇到图形界面解决不了的冲突场景这时候懂命令就能救命。8.2 IDEA内置GitJava开发者的最佳选择用IntelliJ IDEA的同学其实不太需要切到Git Bash敲命令。IDEA内置了完整的Git支持右上角的绿色箭头是提交蓝色向下箭头是pull向上箭头是push右下角可以切换分支、查看历史。第一次在IDEA里用Git需要先配置Git路径Settings - Version Control - Git选择git.exe的位置。然后在Settings里的Version Control部分设置用户信息也可以直接在终端里提前用git config配置好IDEA会自动读取。IDEA集成了代码审查、冲突解决的可视化界面处理冲突比命令行友好很多。但学习阶段我还是建议时不时切到Git Bash敲几遍命令别让自己变成纯工具依赖者。8.3 VSCode Gitee插件VSCode里操作Git也很方便自带源代码管理面板就能看改动、暂存、提交、推送。配合Gitee相关的扩展可以在编辑器里直接创建仓库、克隆仓库、查看Issue。比较常用的扩展有GitLens增强历史查看、Git History查看提交历史、Gitee插件在编辑器里浏览和管理Gitee仓库。记得装完扩展后在设置里确认用户信息避免提交署名不对。8.4 学习路径建议根据我带新人的经验新手按这个顺序学习最顺畅先会本地的add/commit/status/log理解暂存区的存在。再学clone/push/pull配合Gitee把代码传上去。然后学分支的创建与切换理解多人协作的基本模型。最后再接触rebase、stash、cherry-pick这些进阶技能。不要一开始追着命令大全背更不要迷信全网最全的速查表。把最常用的十几条命令用熟你已经能应对80%的日常开发。另外建议你建一个专门的练习仓库比如把学习笔记、配置文件放进去每天都提交几次。用真实项目练手比看任何教程都管用。过程中如果遇到报错把报错信息原样复制到搜索引擎里搜基本都能找到答案。Git发展这么多年你能遇到的问题绝大多数都已经有人踩过并解决了。
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻