Git 和SVN 的区别:
-
架构模式:
Git
是分布式
版本控制系统,每个开发者的本地仓库都包含完整的历史记录,可以离线操作;而SVN
是集中式
版本控制系统,所有版本数据集中存放在中央服务器上,操作大多依赖网络。 -
分支与合并:
Git 的分支非常轻量,创建、切换和合并速度快,便于多人并行开发;而 SVN 的分支基于目录复制,操作相对繁琐,合并时容易出现冲突。 -
性能与速度:
Git
大部分操作在本地完成,响应速度快;SVN
每次操作都需与中央服务器交互,因此速度较慢,受网络影响大。 -
数据完整性与安全性:
Git 采用 SHA-1 哈希算法确保数据完整性,并且每个本地仓库都是完整备份,降低了单点故障风险;SVN 的数据集中存储,一旦中央服务器出问题,可能会影响整个代码库。 -
工作流程与协作方式:
Git
支持离线提交、灵活分支和便捷合并,非常适合分布式、多团队协作;而SVN
则需要实时联网提交,权限管理
较严格,适用于对文件控制要求较高的环境。
基本Linux 命令
# 切换目录
cd /path/to/directory# 返回上一级目录
cd ..# 显示当前工作目录
pwd# 列出当前目录内容 (ll 通常是 ls -l 的别名)
ls
ll# 新建一个文件或更新文件修改时间
touch index.js# 删除一个文件
rm index.js# 新建一个目录
mkdir myFolder# 递归删除目录及其内容
rm -r myFolder# 移动(或重命名)文件/目录
# - 将 index.html 移动到 src 目录
mv index.html src
# - 重命名文件
mv oldName.txt newName.txt# 1重置终端(清屏并重新初始化)
reset# 清屏(保留历史记录)
clear# 查看命令历史记录
history
Git命令
commit
: 提交到本地仓库.
push
: 推送到远程仓库.
pull
: 拉取,将远程仓库文件和版本信息下载到本地仓库.
git add <filename> #将文件加入暂存区
git add . #将所有文件添加到暂存区git commit -m "提交说明" #将暂存区的文件提交到版本库,并指定消息git push #推送到远程仓库git init #本地初始化.git文件git clone [远程仓库url] #将远程仓库克隆到本地git reset #将暂存区的文件取消暂存或者是切换到指定版本git remote #查看远程仓库git remote add #添加远程仓库git pull #从远程仓库拉取文件git log #查看提交历史git status #查看所有文件状态
git status [filename] #查看指定文件状态
几个重要目录
版本库: 就是.git
隐藏文件夹,里面存储了配置信息、日志信息,文件版本信息等
工作区(工作目录): 包含.git
文件夹的目录,用于存放开发的代码.
暂存区:就是.git
文件夹中的index
文件,也叫stage
。用于临时保存修改文件.
版本库使用git push
命令提交到远程仓库
工作区中文件的两种状态:
-
untracked
未跟踪(未被纳入版本控制) -
tracked
已跟踪(被纳入版本控制)
Unmodified
未修改
Modified
已修改
Staged
已暂存 -
未
git add
→ 和Git 无关 -
git add
了但未commit
→ 在暂存区 -
git commit
了 → 被 Git 真正管理并记录历史
分支操作
git branch #查看分支
git branch -r #列出所有远程分支
git branch -a #列出所有本地分支和远程分支git branch [name] #创建分支git checkout [name] #切换分支git push [shortName] [name] #推送至远程仓库分支git merge [name] #合并分支
标签操作
git tag #列出已有标签git tag [name] #创建标签git push [shortName] [name] #将标签推送至远程仓库git checkout -b [branch][name] #检出标签