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 查看命令帮助信息
相关推荐
悠然大月季2 小时前
git 怎么导出提交历史,文件是乱码
git·git导出历史记录·git导出历史乱码
chenshiming8024 小时前
在cursor下执行GIT回退版本
git
打点计时器7 小时前
Git快速上手教程
git
我才是一卓7 小时前
linux 安装简易 git 服务端并使用
linux·运维·git
IDIOT___IDIOT9 小时前
关于 git 进行版本管理的时候 gitignore 写入忽略规则而不生效的问题
大数据·git·elasticsearch
不想看见4049 小时前
Git 误删急救手册
大数据·git·elasticsearch
偷懒下载原神9 小时前
【linux操作系统】信号
linux·运维·服务器·开发语言·c++·git·后端
IT二叔9 小时前
Git Flow03-发布流程
git
IT二叔9 小时前
Git Flow08-摘樱桃
git
「QT(C++)开发工程师」11 小时前
Git误操作急救手册大纲
git