【Git】02-Git常见应用

文章目录

    • [1. 删除不需要分支](#1. 删除不需要分支)
    • [2. 修改最新Commit的Message](#2. 修改最新Commit的Message)
    • [3. 修改之前Commit的Message](#3. 修改之前Commit的Message)
    • [4. 连续多个Commit整理为一个](#4. 连续多个Commit整理为一个)
    • [5. 不连续的Commit整理为一个](#5. 不连续的Commit整理为一个)
    • [6. 比较暂存区和HEAD中文件差异](#6. 比较暂存区和HEAD中文件差异)
    • [7. 比较工作区和暂存区中文件差异](#7. 比较工作区和暂存区中文件差异)
    • [8. 将暂存区恢复为HEAD相同](#8. 将暂存区恢复为HEAD相同)
    • [9. 工作区文件恢复和暂存区相同](#9. 工作区文件恢复和暂存区相同)
    • [10. 取消暂存区部分文件的修改](#10. 取消暂存区部分文件的修改)
    • [11. 清除最近几次提交](#11. 清除最近几次提交)
    • [12. 查看不同提交的指定文件的差异](#12. 查看不同提交的指定文件的差异)
    • [13. 正确删除文件的方法](#13. 正确删除文件的方法)
    • [14. 临时加塞紧急任务处理](#14. 临时加塞紧急任务处理)
    • [15. 指定不需要Git管理的文件](#15. 指定不需要Git管理的文件)
    • [16. Git仓库备份到本地](#16. Git仓库备份到本地)
      • [16.1 哑协议和智能协议](#16.1 哑协议和智能协议)
      • [16.2 备份特点](#16.2 备份特点)

1. 删除不需要分支

删除指令

git branch -d 分支名称
git branch -D 分支名称

2. 修改最新Commit的Message

修改最新Message指令

git commit --amend

3. 修改之前Commit的Message

修改之前Message指令

git rebase -i 需要变更的commit的父级commit

Commands

在上述命令中会打开一个策略文件,输入需要执行的command保存并退出策略

保存完成后出现新的策略窗口,编辑并保存退出即可

如果成功界面会提示

Successfully rebased and updated refs/heads/master

注意
这里的变更修改是指没有推送到团队的git服务器,是自己一个人的分支,如果分支是多人协作开发,再变更可能会出现异常影响团队其他成员的提交

4. 连续多个Commit整理为一个

git rebase -i 需要变更的commit的父级commit

这里使用squash命令

操作上述完成后,会有新的窗口。填写变更信息,并保存

成功后提示如下

Successfully rebased and updated refs/heads/master

5. 不连续的Commit整理为一个

git rebase -i 需要变更的commit的父级commit

选择操作command,后续操作和步骤4中相同

6. 比较暂存区和HEAD中文件差异

暂存区和Head之间差异比较

git diff --cached

7. 比较工作区和暂存区中文件差异

查看所有差异

git diff

查看具体文件差异

git diff -- 文件名 (可以多个,空格隔开)

8. 将暂存区恢复为HEAD相同

git reset HEAD

查看差异

git diff --cached

9. 工作区文件恢复和暂存区相同

git checkout -- 文件名

10. 取消暂存区部分文件的修改

git reset HEAD -- 要恢复的文件名(支持多个文件,空格隔开)

11. 清除最近几次提交

git reset --hard 需要恢复到的commit的hash值

此命令慎用,会把所有文件都恢复到指定的commoit

12. 查看不同提交的指定文件的差异

git diff 分支号1(或commit) 分支号2(或commit值) -- 需要比对的文件名

13. 正确删除文件的方法

git rm 文件名

14. 临时加塞紧急任务处理

git stash # 存放当前数据,不影响工作区
git stash apply # 恢复任务,将之前存放的内容显示并放在工作区,同时stash中的内容是保留的
git stash pop # 恢复任务,stash中的内容不保留

15. 指定不需要Git管理的文件

.gitignore文件

*.doc # 后缀名称为doc的不管控

*.doc/ # doc文件夹下所有文件不管控,但如果是某个文件是.doc结尾的,还是会被管控

16. Git仓库备份到本地

16.1 哑协议和智能协议

  • 直观区别:哑协议传输进度不可见;智能协议传输可见
  • 传输速度:智能协议比哑协议传输速度快

16.2 备份特点

可以多点备份

git clone --bare 克隆地址 # bare表示克隆一个不带工作区的仓库

克隆地址和协议协议有关,如果使用智能协议需要在地址前加上file:///前缀,并在路径最后加上.git后缀
git remote add 分支名称 分支地址 # 远程添加分支

git push # 推送

相关推荐
可乐_不渴12 小时前
【Linux】 项目自动化构建工具makefile&& 版本管理Git&&第一个程序
linux·git·自动化·1024程序员节
lzx_00215 小时前
Linux 开发工具(六) 版本管理器git的简单使用
git·1024程序员节
jiangliushi616 小时前
GPT-6.1 Sol 免费用:git status 里中文文件名变成一串数字乱?条命令改好
git·codex·1024程序员节
import_random1 天前
[git]只有git,没有github, 如何工作
git·github
import_random1 天前
[git]先创建远程仓库or先创建本地项目
git·github
Linux实战笔记2 天前
rebase 变基引发提交哈希重写与指针机制分析
git·rebase·提交哈希·分支模型·代码合并
小稀土1232 天前
私有化研发协同系统并行期:旧 Jira 与新 Git 并存 6 条数据规则
git
Madison-No72 天前
Git版本控制工具(二)
git
Brookty2 天前
Git 与 GitHub|第一阶段:仓库、版本历史与 Git 对象模型(上篇)
git·github
Kimnol2 天前
我的第一次 Git 贡献:从 fork 到合并 PR #3130
git