Git与SVN常用指令

Git

基础操作

只有设置签名才能提交内容(签名用来标识内容提交的源头)

bash 复制代码
# 初始化仓库
git init
# 克隆远程仓库
git clone <repo_url>
# 查看当前状态
git status
# 添加全部修改到暂存区
git add .
# 提交到本地仓库
git commit -m "提交说明"
# 查看提交历史(精简版)
git log --oneline
# 查看文件修改差异
git diff

分支管理

bash 复制代码
# 创建新分支
git branch <branch_name>
# 切换分支
git checkout <branch_name>
# 创建并切换分支
git checkout -b <new_branch>
# 合并分支到当前分支
git merge <branch_name>
# 删除本地分支
git branch -d <branch_name>
# 强制删除未合并分支
git branch -D <branch_name>
# 查看所有分支(含远程)
git branch -a

远程仓库

bash 复制代码
# 添加远程仓库
git remote add <remote_name> <repo_url>
# 推送本地分支到远程
git push -u <remote_name> <branch_name>
# 强制推送(慎用!)
git push -f
# 拉取远程更新
git pull <remote_name> <branch_name>
# 获取远程分支但不合并
git fetch
# 删除远程分支
git push <remote_name> --delete <branch_name>

撤销操作

bash 复制代码
# 撤销工作区修改
git checkout -- <file>
# 撤销暂存区文件
git reset HEAD <file>
# 修改最后一次提交
git commit --amend
# 回退到指定提交(保留修改)
git reset --soft <commit_id>
# 彻底回退到指定提交(慎用!)
git reset --hard <commit_id>
# 恢复误删的文件
git checkout <commit_id> -- <file_path>

日志与查询

bash 复制代码
# 图形化提交历史
git log --graph --all
# 按作者搜索提交
git log --author="name"
# 搜索提交内容
git log -S "keyword"
# 显示某文件的修改历史
git blame <file>

标签管理

bash 复制代码
# 创建标签
git tag <tag_name>
# 创建带注释标签
git tag -a v1.0 -m "版本说明"
# 推送标签到远程
git push --tags
# 删除本地标签
git tag -d <tag_name>
# 删除远程标签
git push origin :refs/tags/<tag_name>

git add 文件
git commit -m '描述'
工作区
暂存区
本地仓库

Git分支

在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支。使用分

支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支

的运行。

合并分支发生冲突

执行 git merge 发生冲突
查看冲突状态 git status
打开冲突文件手动解决
解决冲突后 git add 文件
提交合并 git commit
合并完成
取消合并 git merge --abort

SVN

命令 作用 示例 说明
svn checkout (svn co) 检出仓库到本地 svn checkout http://svn.example.com/trunk 第一次获取代码
svn update (svn up) 更新本地副本 svn updatesvn up 同步服务器最新版本
svn status (svn st) 查看工作副本状态 svn statussvn st 显示修改/新增/删除的文件
svn add 添加新文件到版本控制 svn add filename.txt 添加后需要提交
svn commit (svn ci) 提交更改到服务器 svn commit -m "提交说明" 提交本地修改到服务器
svn delete (svn del) 删除文件 svn delete filename.txt 标记删除,需提交生效
svn revert 撤销本地修改 svn revert filename.txt 恢复文件到服务器版本
svn copy (svn cp) 复制文件或目录 svn copy file1.txt file2.txt 可用于创建分支/标签
svn move (svn mv) 移动或重命名 svn move old.txt new.txt 保持版本历史
svn mkdir 创建目录 svn mkdir newdir 创建并添加到版本控制
svn diff 比较差异 svn diff filename.txt 查看文件修改内容
svn log 查看提交历史 svn logsvn log -l 5 显示历史记录,-l指定条数
svn info 查看工作副本信息 svn info 显示URL、版本等信息
svn list (svn ls) 列出目录内容 svn list http://svn.example.com/ 显示远程目录结构
svn cat 查看文件内容 svn cat http://svn.example.com/file.txt 不检出直接查看文件内容
svn blame (svn praise) 查看文件每行最后修改者 svn blame filename.txt 显示每行的作者和版本
svn merge 合并分支 svn merge http://svn.example.com/branches/feature1 将分支合并到当前目录
svn resolve 标记冲突已解决 svn resolve filename.txt --accept=working 解决冲突后标记文件
svn switch (svn sw) 切换分支/标签 svn switch http://svn.example.com/branches/feature1 切换到指定分支
svn export 导出干净代码 svn export http://svn.example.com/trunk ./export 无.svn目录的纯净导出
svn import 导入项目到仓库 svn import ./myproject http://svn.example.com/trunk -m "初始导入" 将本地项目导入仓库
svn lock 锁定文件 svn lock file.txt -m "锁定说明" 防止他人修改文件
svn unlock 解锁文件 svn unlock file.txt 解除文件锁定
svn cleanup 清理工作副本 svn cleanup 修复损坏的工作副本
svn help 查看帮助 svn helpsvn help commit 查看命令帮助信息
相关推荐
vibecoding日记3 天前
为什么我就想要「线性历史 + Signed Commits」,GitHub 却把我当猴耍 🤬🎙️
git·编程工具
程序员小崔日记3 天前
如何将代码轻松上传到 Gitee?Git 使用全攻略!
git·gitee·上传
Bigger4 天前
为什么你的 Git 提交需要签名?—— Git Commit Signing 完全指南
git·开源·github
DianSan_ERP5 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
红豆子不相思5 天前
Tomcat 环境搭建与集群实战
服务器·git·tomcat
杰哥技术分享5 天前
Git 仓库迁移技术文档:从 CODING.net 迁移至腾讯云 CNB
git
梅孔立5 天前
Ansible 100 台服务器一键管控实战 进阶版
服务器·git·ansible
qq_426003966 天前
git切换当前分支到远程分支
git
ON10N6 天前
100% 纯 Vibe Coding,我是怎么用 AI 撸出一个 VS Code 插件的
git·ai编程·visual studio code