十分钟学会Git

Git 和SVN 的区别:
  • 架构模式:
    Git分布式版本控制系统,每个开发者的本地仓库都包含完整的历史记录,可以离线操作;而 SVN集中式版本控制系统,所有版本数据集中存放在中央服务器上,操作大多依赖网络。

  • 分支与合并:

    Git 的分支非常轻量,创建、切换和合并速度快,便于多人并行开发;而 SVN 的分支基于目录复制,操作相对繁琐,合并时容易出现冲突。

  • 性能与速度:
    Git 大部分操作在本地完成,响应速度快;SVN 每次操作都需与中央服务器交互,因此速度较慢,受网络影响大。

  • 数据完整性与安全性:

    Git 采用 SHA-1 哈希算法确保数据完整性,并且每个本地仓库都是完整备份,降低了单点故障风险;SVN 的数据集中存储,一旦中央服务器出问题,可能会影响整个代码库。

  • 工作流程与协作方式:
    Git 支持离线提交、灵活分支和便捷合并,非常适合分布式、多团队协作;而 SVN 则需要实时联网提交,权限管理较严格,适用于对文件控制要求较高的环境。

基本Linux 命令
bash 复制代码
# 切换目录
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 : 拉取,将远程仓库文件和版本信息下载到本地仓库.

bash 复制代码
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 真正管理并记录历史

分支操作
bash 复制代码
git branch #查看分支
git branch -r #列出所有远程分支
git branch -a #列出所有本地分支和远程分支

git branch [name] #创建分支
 
git checkout [name] #切换分支

git push [shortName] [name] #推送至远程仓库分支

git merge [name] #合并分支
标签操作
bash 复制代码
git tag #列出已有标签

git tag [name] #创建标签

git push [shortName] [name] #将标签推送至远程仓库

git checkout -b [branch][name] #检出标签
相关推荐
苹果酱05672 小时前
【Azure Redis】Redis导入备份文件(RDB)失败的原因
java·vue.js·spring boot·mysql·课程设计
每次的天空2 小时前
Android第六次面试总结之Java设计模式(二)
android·java·面试
JAVA百练成神3 小时前
Java引用RabbitMQ快速入门
java·rabbitmq·java-rabbitmq
元亓亓亓3 小时前
Java后端开发day42--IO流(二)--字符集&字符流
java·开发语言
weixin_472339464 小时前
PyCharm 安装教程
ide·python·pycharm
一刀到底2114 小时前
idea内存过低 设置 Maximum Heap Size 终极解决方案
java·ide·intellij-idea
振鹏Dong5 小时前
Java基础问题——八股盛宴 | 3w字分享
java
JH30735 小时前
【SpringBoot】SpringBoot中使用AOP实现日志记录功能
java·spring boot·后端
学java的cc5 小时前
Spring AI快速入门
java·大数据·spring
吃货界的硬件攻城狮5 小时前
【STM32 学习笔记】EXTI外部中断
笔记·stm32·学习