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 查看命令帮助信息
相关推荐
李少兄3 小时前
在 IntelliJ IDEA 中修改 Git 远程仓库地址
java·git·intellij-idea
先跑起来再说9 小时前
Git 入门到实战:一篇搞懂安装、命令、远程仓库与 IDEA 集成
ide·git·后端·elasticsearch·golang·intellij-idea
承渊政道12 小时前
Linux系统学习【Linux系统的进度条实现、版本控制器git和调试器gdb介绍】
linux·开发语言·笔记·git·学习·gitee
Doro再努力12 小时前
【Linux操作系统12】Git版本控制与GDB调试:从入门到实践
linux·运维·服务器·git·vim
摇滚侠15 小时前
MAC IDEA GIT 提交区显示了几个不存在的目录
git·idea
城东16 小时前
Git使用[远程仓库远端的head比本地和提交的head旧,其他人拉不到最新代码]
git·head·远程仓库远端·比本地和提交的head旧·其他人拉不到最新代码
何中应1 天前
使用SSH地址拉取远程仓库代码报下面的错误
git
何中应1 天前
Git本地仓库命令补充
git
sun0077001 天前
执行repo sync -c -d -j4以后,提交未git push的代码看不到了。要怎么恢复?
git
胖虎11 天前
Git 一个本地仓库同时推送到两个远程仓库(详细教程)
git·多远程仓库·双远程仓库·git双远程·git备份