【Git入门】

Git 配置命令

bash 复制代码
git config --global user.name "xxx"
git config --global user.email xxx@gmail.com

# 查看配置信息 
git config --list

# 生成 SSH 密钥
ssh-keygen -t rsa -b 4096 -C "xxx@gmail.com"

Git 工作流程 && 常用命令

bash 复制代码
# 克隆远程仓库
git clone xxxx

# 查看工作区状态
git status

# 添加到缓存区
git add <修改的文件>

# 提交修改
git commit

# 推送
git push
  • 创建新分支
bash 复制代码
git checkout -b new-feature
  • 暂存
bash 复制代码
git add .
  • 提交修改
bash 复制代码
git commit -m "提交信息"
  • 拉取修改
bash 复制代码
git pull origin main
  • 推送更改
bash 复制代码
git push origin XXX
  • 合并修改
bash 复制代码
git check main
git pull origin main
git merge new-feature
  • 删除分支
bash 复制代码
git branch -d new-feature

或者从远程仓库删除分支:

bash 复制代码
git push origin --delete new-feature
  • 查看提交历史
bash 复制代码
git log
  • 查看工作区和暂存区的差异
bash 复制代码
git diff

Git 创建仓库

使用当前目录作为git仓库,我们要进行初始化

bash 复制代码
git init

执行命令后在当前目录生成一个.git目录

Git 分支管理

  • 创建分支
    创建新分支并切换到该分支:
bash 复制代码
git checkout -b <branchname>
  • 查看分支
    查看所有分支:
bash 复制代码
git branch

查看远程分支:

bash 复制代码
git branch -r

查看所有本地和远程分支:

bash 复制代码
git branch -a
  • 合并分支
    将其他分支合并到当前分支:
bash 复制代码
git merge <branchname>
  • 删除分支
    删除本地分支:
bash 复制代码
git branch -d <branchname>

强制删除未合并的分支:

bash 复制代码
git branch -D <branchname>

删除远程分支:

bash 复制代码
git push origin --delete <branchname>

恢复和回退

Git 提供了多种方式来恢复和回退到之前的版本,不同的命令适用于不同的场景和需求。

以下是几种常见的方法:

git checkout:切换分支或恢复文件到指定提交。
git reset:重置当前分支到指定提交(软重置、混合重置、硬重置)。
git revert:创建一个新的提交以撤销指定提交,不改变提交历史。
git reflog:查看历史操作记录,找回丢失的提交。

  • git reset:重置当前分支到特定提交

git reset 命令可以更改当前分支的提交历史,它有三种主要模式:--soft、--mixed 和 --hard。

--soft:只重置 HEAD 到指定的提交,暂存区和工作目录保持不变。

bash 复制代码
git reset --soft <commit>

--mixed(默认):重置 HEAD 到指定的提交,暂存区重置,但工作目录保持不变。

bash 复制代码
git reset --mixed <commit>

--hard:重置 HEAD 到指定的提交,暂存区和工作目录都重置。

bash 复制代码
git reset --hard <commit>

Git 进阶操作

  • Git Stash:临时保存工作进度,方便切换任务。
  • Git Rebase:将一个分支上的更改移到另一个分支之上,保持提交历史线性。
    • git pull --rebase :
    • 假设你的提交历史是 A-B-C,远程有人提交了 D:
      1. 你的状态:A-B-C(C 是你的本地提交)。
      2. 远程状态:A-B-D
      3. 执行 git pull --rebase:
        • Git 会先把 C 拿掉,暂存起来。
        • 把本地分支更新到 D(变成 A-B-D)。
        • 把 C 重新应用在 D 之后(变成 A-B-D-C')。
  • Git Cherry-Pick:选择特定提交并应用到当前分支。
相关推荐
Elasticsearch2 天前
如何通过 Claude Code 来写入 CSV 数据到 Elasticsearch
elasticsearch
得物技术3 天前
从埋点需求到规则资产:Hermes Agent 重构得物数仓工作流
大数据·llm·ai编程
深海鱼在掘金3 天前
Git 完全指南 —— 第1章:Git 概览与版本控制演进
git
久美子3 天前
AI驱动数仓建设的Harness工程实践——本体建模、知识分层与上下文工程
大数据
大树884 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
大志哥1234 天前
ES和Logstash日志链路系统上线后遭遇切片爆炸(解决)
大数据·elasticsearch
果丁智能4 天前
物联网智能锁赋能集中式住宿:身份核验与远程权限管控的全链路技术实践
大数据·人工智能·物联网·智能家居
ApacheSeaTunnel4 天前
实战演示 | 基于 Apache SeaTunnel 与 Apache DolphinScheduler 实现 MySQL 到 Doris 离线定时增量同步
大数据·mysql·开源·doris·数据集成·seatunnel·数据同步
weixin_397574094 天前
PDF复杂表格的1:1还原引擎:跨页表格自动拼接技术实战
大数据·人工智能·pdf
TableRow4 天前
参数化搜索的实现原理:从多维索引到查询优化
elasticsearch·全文检索