Git -- 运用总结

本文详细介绍了Git的核心功能,包括初始化、版本控制、仓库管理(远程仓库、清理和版本回退)、分支操作(创建、暂存和切换)、以及代码提交和拉取的最佳实践。
摘要由CSDN通过智能技术生成

1. Git

在这里插入图片描述

2. 基础/查阅

2.1 基础/查阅 - git

## 初始化
git init
## 删除git版本控制
rm -rf .git 

## 当前分支信息提交状态
git status
## 查看历史提交记录
git log 

## 文本新建
touch .gitignore 

2.2 仓库 - remote

 远程仓库 remote

## 添加一个新的远程仓库。指定一个远程仓库的名称和 URL 将其添加到当前仓库中。
git remote add <remote_name> <remote_url>
 --> git remote add origin (remote_url)
## 查看远程分支信息
git remote -v  

2.3 清理 - rm/clean

## 删除暂存区/缓存区Staging area内容
git rm --cached <文件路径>  // 删除指定文件
git rm --cached <文件路径> -r // 删除此路径下所有文件

## 删除所有未提交本地仓库的缓存
git clean -f

2.4 版本回退 - reset

## 回退上 x 个版本(并保留本次修改的内容到工作区)
git reset HEAD~x

## --hard :版本回退会清理所有未提交/未跟踪的内容 & 清除该版本后的所有提交
## 回退上 x 个版本
git reset --hard HEAD ~x
## 回退指定版本
git reset --hard xxxxxxx(版本号/版本号前几位)
## 回退指定文件到指定版本
git reset --hard xxx(版本号或版本号前几位) filename

2.5 修改commit注释 - amend / rebase

xxxxxxxx

3. 分支

3.1 分支基础 - branch

## 列出本地分支(需要在commit后真正创建)
git branch
git branch -v 
## 查看远程分支
git branch -r
## 查看本地与远程分支之间的映射关系
git branch -vv

## 手动创建分支(新建的分支基于当前所在分支进行复制)
git branch (branchname) 
## 重命名当前分支名
git branch -M (branchname)
## 删除本地分支,强制 -D
git branch -d (branchname)
## 分支关联
git branch --set-upstream-to=<origin/远程分支> <本地分支>

3.2 分支暂存更改 - stash

git stash // 暂时储存未提交到缓存区的更改
git stash list // 查看所有暂存
git stash apply stash@{$num} // 应用指定缓存,不删除
git stash pop stash@{$num} // 应用指定缓存,并将其删除

## 删除缓存
git stash drop stash@{x} // 删除指定缓存
git stash clear // 清空所有缓存

3.3 分支切换 - checkout

## 分支切换
git checkout (new-branchname)
a. 当工作区workspace/缓存区staging area 当中无内容时
-> 可以直接分支切换
b. 若工作区workspace/缓存区staging area 当中有内容时
b.1 -> 不冲突会将更改带入新分支
b.2 -> 发生冲突无法完成分支切换(需要commit)

在这里插入图片描述

在这里插入图片描述

## 撤销工作区中指定文件的修改(必须要先被上传到缓存区进行追踪)
git checkout (filename)

## 基于本地某分支新建分支
git checkout -b new-branch branch
## 基于远程某分支新建分支
git checkout -b <本地分支名> origin/<远程分支名>

3.4 分支差异 - diff

## 比较workspace 与 staging area 区别
git diff
## 比较 staging area暂存区与 local repository本地仓库 区别
git diff --cached
## 比较两个分支最后 commit 的内容的差别
git diff <分支名1> <分支名2>

在这里插入图片描述

3.5 分支合并 - merge

## 分支合并(merge 是基于当前本地仓库内容进行合并的,即合并是合并commit过后的内容)
git merge <分支1> // 将分支1 合并到当前分支上

原理:递归三路合并算法
原理:当两个分支进行合并操作时,会首先找到两个分支的最近公共父节点,然后以公共父节点 + 合并A节点 + 合并B节点三个节点
作为基准,只有在 A 与 B 节点合并发生冲突时才会需要人为介入合并,否则(A修改B未修改保留A,B修改A未改保留B,A与B同时修改内容一致同时保留,A与B都未修改则保留原有内容)系统都会自动进行合并.

在这里插入图片描述
在这里插入图片描述

4. 代码提交/拉取

4.1 代码提交 - push

  x.1 提交本地仓库

git add .   // .表示当前目录, 将当前目录下的所有文件都提交到 staging area暂存区(可切换成指定文件)
git commit -m "xxxxx"   // 提交到本地仓库,并添加 xxxxx 信息备注

  x.2 上传远程仓库(push)

## 默认代码上传push
git push <远程主机名> <本地分支名>:<远程分支名> 
## push上传(本地分支名与远程分支名相同,则可以省略冒号)
git push <远程主机名> <本地分支名> 
## 本地的 `main` 分支与远程仓库 `origin/main` 分支关联, 在以后的推送和拉取操作中,就可以使用 `git push` 和 `git pull` 命令,而不必指定远程分支的名称。
git push -u <远程主机名> <本地分支名>

## 删除远程分支(需本地分支与远程分支同步)(本地分支无影响)
git push origin --delete Test_XiaoMing

4.2 代码拉取 - pull

  x.1远程代码拉取 pull

## 默认代码pull拉取方式
git pull <远程主机名> <远程分支名>:<本地分支名> 

## 补充(pull成功, 但是文件未更新, 可能是暂存区与工作目录有缓存)
git reset HEAD . // 清除缓存区(staging area)缓存
git checkout .  // 放弃掉所有还没有加入到缓存区(git add)的修改

## 允许冲突强制拉取
git pull origin main --allow-unrelated-histories
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

psudd

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值