Git操作学习1

一、一些Linux相关指令

在当前目录下,创建文件并写入内容:echo "这是第一个文件">file1.txt

查看文件的内容: cat file1.txt 会显示:这是第一个文件

修改文件名:mv file.txt file4.txt 把file.txt修改为file4.txt

复制文件夹: cp -rf a(被复制的文件夹名) b(重新复制的文件夹名)

二、git的区域

git的分为工作区、暂存区、本地仓库三个状态

  1. 工作区(Working Directory)

    • 工作区是你在电脑上看到的文件和目录,是你可以直接编辑文件的地方。
    • 当你对文件进行修改时,这些更改首先出现在工作区。
    • 工作区中的文件状态可以是已跟踪(tracked)或未跟踪(untracked)。已跟踪的文件是那些已经被 Git 记录的文件,而未跟踪的文件是 Git 尚未管理的文件。
  2. 暂存区(Staging Area/Index)

    • 暂存区是一个中间区域,用于暂存即将进行提交的更改。
    • 使用 git add 命令可以将工作区的更改添加到暂存区,这意味着你告诉 Git 你想要在下一次提交中包含这些更改。
    • 暂存区允许你精细控制哪些改动会被包含在下一个提交中,哪些不会。
  3. 本地仓库(Local Repository)

    • 本地仓库是位于你电脑上的 .git 目录,它包含了所有的版本历史记录,即所有的提交(commits)。
    • 当你执行 git commit 命令时,Git 会将暂存区的所有内容永久保存为一个快照,这个快照就构成了一个新的提交。
    • 本地仓库中的提交可以被推送到远程仓库(Remote Repository),与其他人共享。

三、git操作

1.添加和提交文件

创建仓库:git init

查看仓库的状态:git status

添加到暂存区:git add 文件名

git add *.txt (把目录下所有以txt结尾的文件都提交进仓库暂存区)

git add .(把目录下所有文件都添加进仓库暂存区)

把文件从暂存区再拿回:git rm --cached 文件名

把文件提交到仓库中(只会提交暂存区的文件而不会提交工作区的文件):git commit -m"提交的信息" (注意 m和""之间没有空格 并且是英文双引号 否则会进入git commit -m "第一次提交" dquote>状态)

如果没有-m "提交的信息",会进入交互的界面,默认使用vim提交交互的信息(保存退出:wq 不保存退出:q!)

这样提交过后git status中就没有file1.txt的状态信息了

查看提交记录:git log

2.git reset回退版本

git reset --soft

会退到某一个版本并且保存工作区和暂存区的所有内容

git reset --hard

会退到某一个版本并且丢弃工作区和暂存区的所有内容

git reset --mixed

会退到某一个版本并且保存工作区修改内容 丢弃暂存区的修改内容 是git reset --mix的默认参数

eg创建三个文件

初始化仓库 把三个文件分别放入暂存区再提交到仓库里面,分为三次操作。

打印仓库状态git log

复制三个文件夹来回退

1.使用 --soft:工作区和暂存区的内容都不会被清空。

显示暂存区的目录:git ls-files

显示工作区的内容:ls

2.使用 --hard:工作区和暂存区都会被清空

工作区和暂存区file3.txt都没有了

3.使用 -- mixed:

工作区还有 暂存区没有了

4.误操作处理

(谨慎使用hard命令 但即使不小心使用了也没关系 git中所有操作都是可回溯的 使用git reflog命令查看操作的历史记录 找到误操作前的版本号 使用git reset --hard 版本号就可以了 )

3.使用git diff查看差异

(1)git diff

表示工作file3.txt少了一个333,多了一个pig。表示工作区和暂存区的内容之间的差异,因为我们修改的内容没有添加到暂存区。

现在把修改的内容添加到暂存区,没有输出内容,表示工作区和暂存区内容是相同的。

(2)git diff HEAD

比较工作区和版本库的差异

我们修改的内容还没有执行提交操作 所以工作区和版本库的是不同的

表示工作区和仓库的内容是不相同的

(3)git diff --cached

比较暂存区和版本库之间的差异

现在是有差异的

提交一下

返回空 说明暂存区和版本库也是一样的

也返回空 说明工作区和版本库也是一样的

(3)git diff ID1 ID2

比较两个版本库之间的差异 只要提交两个版本的id就可以了

(5)git diff ID HEAD

比较版本库和当前版本之间的差异

(5)git diff HEAD~ HEAD

HEAD~表示上一个版本 HEAD表示当前版本

除了~以外 ^也是可以的 ~2表明HEAD之前的两个版本

比较当前版本与上一个提交版本之间的 差异

(6)git diff HEAD~ HEAD 文件名

这样就只显示两个这两个版本之间指定文件的差异,其他的就不显示了。

(7)总结

相关推荐
学习&笔记35 分钟前
git 撤销修改
git
star@星空3 小时前
git工作中常用指令
大数据·git·elasticsearch
雨中奔跑的小孩4 小时前
爬虫学习案例3
爬虫·python·学习
冷环渊4 小时前
React基础学习
前端·学习·react.js
今天我又学废了6 小时前
学习记录,隐式对象,隐式类
学习
#HakunaMatata6 小时前
Java 中 List 接口的学习笔记
java·学习·list
Magnetic_h6 小时前
【iOS】OC高级编程 iOS多线程与内存管理阅读笔记——自动引用计数(三)
笔记·学习·ios·objective-c·cocoa
cwtlw8 小时前
CSS学习记录11
前端·css·笔记·学习·其他
cwtlw9 小时前
如何创建maven工程
java·笔记·后端·学习·maven
半夏知半秋10 小时前
unity打包流程整理-Windows/Mac/Linux平台
windows·笔记·学习·macos·unity·游戏引擎