前言在代码开发和项目管理中,Git能帮你记录每一次修改,在协作时避免冲突,还能轻松回溯历史文件记录。今天从安装配置到远程协作,给大家分享一些Git的用法。
一、准备工作:Git安装与基础配置1. Windows安装Git下载:去Git for Windows官网或Gitee镜像站(网速更快)下载安装包;安装:双击安装包,按向导一步步点“下一步”,默认选项即可满足多数需求;验证:打开Git Bash或PowerShell,输入git --version,能显示版本号(比如“git version 2.45.1.windows.1”)就代表安装成功。2. 基础配置:让Git“认识”你安装后要配置用户名和邮箱(用于标记提交者),还能设置默认分支和颜色显示,命令直接复制执行:
代码语言:bash复制# 配置用户名(替换成你的名字,比如“Zhang San”)
git config --global user.name "Your Name"
# 配置邮箱(替换成你的邮箱)
git config --global user.email "you@example.com"
# 设置默认分支为main(现在主流分支名)
git config --global init.defaultBranch main
# 开启颜色显示(让命令结果更易读)
git config --global color.ui auto
# Windows专属:自动转换换行符(避免跨平台文件格式问题)
git config --global core.autocrlf true
# 可选:把VS Code设为默认编辑器(后续写提交信息更方便)
git config --global core.editor "code --wait"3. Gitee绑定:安全连接远程仓库想把代码传到Gitee,推荐用“个人访问令牌”(比账号密码更安全):
登录Gitee,进入“个人设置→私人令牌”;点击“生成新令牌”,勾选需要的权限(比如“projects”),按提示完成验证;保存生成的令牌(只显示一次,丢了要重新生成),后续推送代码时,“用户名”填Gitee账号,“密码”填这个令牌。二、Git核心概念Git的核心逻辑,就像“三层文件抽屉”,每层负责不同工作:
工作区:你能看到的文件和文件夹,比如电脑里的“demo-git”文件夹,是你日常编辑代码的地方;暂存区:“待提交的草稿箱”,把工作区的修改添加到这里,相当于“标记哪些修改要保存”;本地仓库:“正式档案库”,提交暂存区的内容后,会在这里生成历史记录,HEAD指针会指向当前所在的分支;远程仓库:比如Gitee上的仓库,是“团队共享的档案库”,方便多人协作时同步代码。三、常用命令清单掌握这些高频用法,能应对80%的场景:
1. 查看状态与差异:知道代码改了啥代码语言:bash复制# 查看当前仓库状态(哪些文件被修改、是否在暂存区)
git status
# 查看工作区与暂存区的差异(没添加到暂存区的修改)
git diff
# 查看暂存区与最近一次提交的差异(已添加但没提交的修改)
git diff --staged2. 添加与提交:保存代码修改代码语言:bash复制# 把单个文件添加到暂存区(替换
git add
# 把所有修改(包括新增、修改、删除)添加到暂存区
git add .
# 提交暂存区的内容,-m后是提交信息(要写清楚改了啥,比如“新增登录功能”)
git commit -m "feat: add new login"
# 修改上一次的提交信息(还没推送到远程时可用)
git commit --amend -m "fix: new correct message"3. 历史与回溯:查看过去的修改代码语言:bash复制# 简洁查看所有分支的提交历史(一行一个提交,带分支图)
git log --oneline --graph --decorate --all
# 查看某次提交的具体内容(替换
git show
代码语言:bash复制# 丢弃工作区的修改(比如误改了文件,想恢复到最近一次提交的状态,谨慎用)
git restore
# 把文件从暂存区移除(保留工作区的修改,比如误加了不需要的文件)
git restore --staged
# 还原某次提交(生成反向提交,不会删除历史,安全)
git revert
# 重置分支到某次提交(危险!谨慎用,--mixed是默认模式,重置暂存区)
git reset --mixed
代码语言:txt复制/target/ # 忽略target文件夹(编译产物)
*.class # 忽略所有.class后缀的文件
*.log # 忽略所有.log后缀的文件
.idea/ # 忽略IDEA的配置文件夹
*.iml # 忽略IDEA的.iml文件
.DS_Store # 忽略Mac系统的隐藏文件四、分支管理分支就像“代码开发的平行宇宙”——在新分支开发功能,不会影响主干代码,完成后再合并回去,这是多人协作的核心。
1. 分支基础操作代码语言:bash复制# 创建并切换到新分支(比如“feature/login”,功能分支——开发登录功能)
git switch -c feature/login
# 在已有分支间切换(比如切回main主干)
git switch main
# 把feature/login分支合并到main主干(先切到main)
git switch main
git merge feature/login
# 同步远程主干的最新代码(先拉取,再变基,让历史更整洁)
git fetch origin
git switch main
git pull --rebase origin main
# 把主干的最新修改同步到功能分支(两种方式)
# 方式1:合并(保留分叉历史)
git switch feature/login
git merge main --no-ff -m "merge main into feature/login"
# 方式2:变基(把功能分支的提交“挪到”主干最新之后,历史更加线性)
git switch feature/login
git rebase main
# 首次推送功能分支并建立上游
git push -u origin feature/login
# 发起合并(建议 PR/MR 流程),或本地合并:
git switch main
git merge --no-ff feature/login -m "feat(login): implement basic login"
git push origin main2. 解决冲突:协作中难免遇到,按步骤来就好合并或变基时遇到冲突(比如两人改了同一文件的同一行),不用慌:
命令行提示“Automatic merge failed”,打开冲突文件,里面会有<<<<<<<、=======、>>>>>>>标记,中间就是冲突内容;编辑文件:保留需要的内容,删除冲突标记;标记冲突已解决:git add
1. 管理远程仓库:添加、查看与修改代码语言:bash复制# 查看当前配置的远程仓库(显示别名和地址,比如origin)
git remote -v
# 添加远程仓库(别名设为origin,
git remote add origin
# 修改远程仓库地址(比如换了仓库,更新地址)
git remote set-url origin
git fetch origin
# 拉取远程main分支的代码,并变基到本地main(推荐,避免多余合并提交)
git pull --rebase origin main
# 推送本地main分支到远程origin
git push origin main
# 首次推送功能分支(比如feature/login),并建立与远程的关联(后续可直接git push)
git push -u origin feature/login3. Gitee实操:从创建仓库到推送代码创建远程仓库:登录Gitee,点击“+”号→“新建仓库”,填仓库名(比如“demo-git”),选择公开/私有,点击“创建”;获取仓库地址:仓库创建后,复制页面上的HTTPS地址;本地推送代码:在本地仓库执行以下命令,把代码推到Gitee: 代码语言:bash复制# 添加远程仓库(origin是别名)
git remote add origin https://gitee.com/your-name/demo-git.git
# 首次推送main分支,并设置上游
git push -u origin main4.从 GitHub 迁移到 Gitee(镜像):
方案 A:在 Gitee 仓库设置中使用“从 GitHub 导入仓库” 方案 B:本地设置两个远程,手动推送:代码语言:bash复制git remote add github git@github.com:
git remote add gitee https://gitee.com/
# 推送全部分支与标签(如果打了发布标签,比如v1.0.0)
git push gitee --all
git push gitee --tags六、常见问题push被拒绝:先执行git fetch origin拉取远程最新代码,再用git pull --rebase origin main同步,解决冲突后再推送;进入Detached HEAD状态:这是“游离头指针”,执行git switch