在代码开发和项目管理中,Git能帮你记录每一次修改,在协作时避免冲突,还能轻松回溯历史文件记录。今天从安装配置到远程协作,给大家分享一些Git的用法。
git --version,能显示版本号(比如“git version 2.45.1.windows.1”)就代表安装成功。安装后要配置用户名和邮箱(用于标记提交者),还能设置默认分支和颜色显示,命令直接复制执行:
# 配置用户名(替换成你的名字,比如“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"想把代码传到Gitee,推荐用“个人访问令牌”(比账号密码更安全):
Git的核心逻辑,就像“三层文件抽屉”,每层负责不同工作:
掌握这些高频用法,能应对80%的场景:
# 查看当前仓库状态(哪些文件被修改、是否在暂存区)
git status
# 查看工作区与暂存区的差异(没添加到暂存区的修改)
git diff
# 查看暂存区与最近一次提交的差异(已添加但没提交的修改)
git diff --staged# 把单个文件添加到暂存区(替换<file>为文件名,比如“src/App.java”)
git add <file>
# 把所有修改(包括新增、修改、删除)添加到暂存区
git add .
# 提交暂存区的内容,-m后是提交信息(要写清楚改了啥,比如“新增登录功能”)
git commit -m "feat: add new login"
# 修改上一次的提交信息(还没推送到远程时可用)
git commit --amend -m "fix: new correct message"# 简洁查看所有分支的提交历史(一行一个提交,带分支图)
git log --oneline --graph --decorate --all
# 查看某次提交的具体内容(替换<commit>为提交ID,比如“a1b2c3d”)
git show <commit>Git 2.23+推荐用restore命令,更直观安全:
# 丢弃工作区的修改(比如误改了文件,想恢复到最近一次提交的状态,谨慎用)
git restore <file>
# 把文件从暂存区移除(保留工作区的修改,比如误加了不需要的文件)
git restore --staged <file>
# 还原某次提交(生成反向提交,不会删除历史,安全)
git revert <commit>
# 重置分支到某次提交(危险!谨慎用,--mixed是默认模式,重置暂存区)
git reset --mixed <commit>创建.gitignore文件,写入要忽略的文件/文件夹(比如编译产物、IDE配置),示例:
/target/ # 忽略target文件夹(编译产物)
*.class # 忽略所有.class后缀的文件
*.log # 忽略所有.log后缀的文件
.idea/ # 忽略IDEA的配置文件夹
*.iml # 忽略IDEA的.iml文件
.DS_Store # 忽略Mac系统的隐藏文件分支就像“代码开发的平行宇宙”——在新分支开发功能,不会影响主干代码,完成后再合并回去,这是多人协作的核心。
# 创建并切换到新分支(比如“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 main合并或变基时遇到冲突(比如两人改了同一文件的同一行),不用慌:
<<<<<<<、=======、>>>>>>>标记,中间就是冲突内容;git add <conflicted-files>(替换为冲突文件名);git rebase --continue继续;如果想放弃变基,执行git rebase --abort。本地代码做好后,要传到Gitee和团队共享,或拉取别人的代码,关键是管好“远程仓库”:
# 查看当前配置的远程仓库(显示别名和地址,比如origin)
git remote -v
# 添加远程仓库(别名设为origin,<url>替换成Gitee仓库的HTTPS或SSH地址)
git remote add origin <url>
# 修改远程仓库地址(比如换了仓库,更新地址)
git remote set-url origin <new-url># 仅拉取远程代码,不更新本地分支(查看远程有哪些新提交)
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/login# 添加远程仓库(origin是别名)
git remote add origin https://gitee.com/your-name/demo-git.git
# 首次推送main分支,并设置上游
git push -u origin main4.从 GitHub 迁移到 Gitee(镜像):
git remote add github git@github.com:<ns>/<repo>.git
git remote add gitee https://gitee.com/<ns>/<repo>.git
# 推送全部分支与标签(如果打了发布标签,比如v1.0.0)
git push gitee --all
git push gitee --tagsgit fetch origin拉取远程最新代码,再用git pull --rebase origin main同步,解决冲突后再推送;git switch <branch>(比如git switch main)回到正常分支,需要保存当前修改就新建分支:git switch -c temp;git restore --source=HEAD -- <file>;.gitignore,再清理历史提交中的大文件。Git的核心是理解“工作区-暂存区-仓库”的逻辑和分支协作的思路。从本地管理代码到Gitee远程协作,多在实际项目中用,遇到问题多查一查,慢慢就会觉得Git是个超好用的工具。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。