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 查看命令帮助信息
相关推荐
H Journey15 小时前
Git 教程
git
蜜汁小强1 天前
macOS 上的git代理配置在哪里
git·macos·代理模式·proxy模式
钟佩颖1 天前
Git .
git
Zhongyi_Li1 天前
git merge的一些记录
git
沛沛老爹2 天前
Web开发者转型AI:Agent Skills版本控制与管理实战——从Git到AI技能仓库
java·前端·人工智能·git·架构·rag
子琦啊2 天前
极速移除 Git 历史中的大文件,告别 git filter-branch太慢的问题
git
儒雅的晴天2 天前
git笔记
笔记·git
Ama_tor2 天前
git bash|下载、安装与配置(Windows11)
git
惜__缘2 天前
Git项目迁移的坑点
git