IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> Git学习三:变更 -> 正文阅读

[开发工具]Git学习三:变更

Git学习三:变更

You will learn

  • 提交文件变更
  • 使用git blame查看提交人


继续我们上篇的内容,还记得你是一位造房的国家栋梁之才吧!

废话少说,再次管你愿不愿意,我还抛上这张图



1.在Git中删除文件或变更文件名


在Git中,无论是删除文件还是文件重命名,对Git来说都是一种变动

怕你忘了目录下还有哪些文件,我又扔了一张图,就问你要不要吧

1.删除文件

  • 一个晚上,经过“高人”指点后的你发觉先建造个门不妥,应该先建造个屋顶,所以你现在要把门拆了。

我们现在删除first.html,有以下两种方式。

方式一:

  1. 先删除workspace中的文件,下面演示我们用Linux命令
rm first.html

现在我们使用git status命令查看以下目录状态

image-20211024220505025

可以发现,first.html的状态变成了deleted ,说明在workspace中已删除了first.html,但需要注意的是仅有workspace中的first.html文件被删除了,Index和Repository中的first.html文件并没有任何影响

  1. 把变动更新到Index
git add first.html

再次用git status命令,可以发现对于first.html的改动已经添加到了Index

image-20211024220816644

Git 版控系统主要记录的是变动或改动,上面的删除文件可以看作一种变动。

  1. 把变动commit到Repository
git commit -m "rm first.html"

方式二:

  1. 使用git rm命令,直接执行方式一的前两步
git rm first.html
  1. 把变动commit到Repository,同上,这里省略代码
  • 你现在专门想着建房顶的事,想着窗户也碍事,就把窗户扔到邻居家的阳台不管了。

不论是执行rm命令还是执行git rm都会真的把这个文件从文件夹中真正删除,如果不是想把文件删除,而是只想让这个文件脱离Git控制,可以在后面加上--cached参数

image-20211024221356000

可以发现second.html已经变为了Untracked,即脱离了Git版本控制。

之后也需要commit到Repository哦,这里我又省略了代码。


2.变更文件名

我前面commit简省了代码,怕你们不敲,我这里捎上

git commit -m "no door and window"

与删除文件一样,变更文件名也是一种改动,所以在操作上也是类似的。由于工作目录文件太少,所以请上了你来:

  • 又过了一夜,你脑中有了详细建房顶的idea,并画在图纸上还偷偷在午夜十二点去地基那儿建房顶,第二天人们只看到房顶和下面的钢架以及地基
echo "create a roof" >newSecond.html
git add --all
git commit -m "create a roof"

在上面我们可以发现我们命名文件名错误了,应该为newFirst.html

与删除文件一样,有两种方式:

mv newSecond.html newFirst.html
git add --all

或者下面的git mv命令

git mv newSecond.html newFirst.html

最后别忘了commit哦

git commit -m "rename newSecond to newFirst"




2.新增目录


  • 午夜时分,你处于深睡中

我们在workspace中新建一个目录,并查看状态

image-20211024222009859

可以,Git的状态没有变化。原因是Git在计算,产生对象时根据文件内容来进行计算的,所以随意往目录新建一个文件即可

touch dreams/.keep

image-20211024222257631




3.有些文件不想放在Git中


  • 你自己为了避免再产生一些不够先进的idea,写了一份参考手册,限制自己所想的idea

我们有时候不想把一些文件(比如 机密文件)放在Git中,只需要在 目录下放一个**.gitignore**文件即可

注意:gitignore = git + ignore

touch .gitignore

如果不会使用vim的话,可以用文本编辑器编辑**.gitignore**文件内容,这里我们写入下面的内容

# 这是注释,可以不写
# 忽略下面的文件
secret.yml
config/database.yml
*.tmp

这时我们新建一个secret.yml文件,然后查看一下状态

touch secret.yml

image-20211024222546831

这里可以发现没有Git没有感应到secret.yml文件,即.gitignore文件生效了

如果不知道自己应该忽略哪些文件,可以登录https://github.com/github/gitignore 查看

  • 你虽然写了一份手册,但是有一天晚上,你喝多了,脑中产生了许多与手册冲突的idea

虽然**.gitignore**文件列出一些忽略的规则,但是这些忽略的规则也是可以忽略的,只需要在执行git add 命令时加上-f参数

git add -f 文件名称




4.查看特定文件的commit记录


在此之前,先把workspace中的文件先add再commit吧

image-20211024222656269

由于Repository没有什么修改的文件,我们再对其中的newFirst.html中的内容修改如下

create a roof
I am a genius !

然后再add并commit,这里省略

现在终于来到了正题:

git log 可以查看整个项目的commit记录,但如果只想查看单一文件的记录,可以在git log命令后面接上那个文件名;如果想详细查看每次commit时那个文件有什么变化,可以加上-p参数

littledot@DESKTOP-DUT0I3O MINGW64 /e/Git_repo/Repo1 (master)
$ git log -p newFirst.html
commit 782fb0eaa78d1876f962795254ca6b5f65e7a9d8 (HEAD -> master)
Author: littledot123 <81870391+littledot123@users.noreply.github.com>
Date:   Thu Oct 7 10:49:47 2021 +0800

    modify newFirst.html

diff --git a/newFirst.html b/newFirst.html
index d5c3587..02be039 100644
--- a/newFirst.html
+++ b/newFirst.html
@@ -1 +1,2 @@
 create a roof
+I am a genius !
\ No newline at end of file

commit fad681e9828d81b34f71d45d10cac0bbce97a714
Author: littledot123 <81870391+littledot123@users.noreply.github.com>
Date:   Wed Oct 6 23:39:15 2021 +0800

    rename newSecond to newFirst

diff --git a/newFirst.html b/newFirst.html
new file mode 100644

其实这里也可以使用git diff命令来查看文件变动区别




5.查看文件代码的作者


  • 你有一天看到了屋顶竟然有一大片漏水的地方,大声嚷嚷地叫道要揪出那个粗心的人

这种状况经常会发生,想要知道某个文件的某一行代码是谁的,可以使用git blame命令。

$ git blame newFirst.html
1e220a45 newSecond.html (littledot123 2021-10-06 23:33:25 +0800 1) create a roof
782fb0ea newFirst.html  (littledot123 2021-10-07 10:49:47 +0800 2) I am a genius !

可以看到上面的那两行代码是我自己写的,如果多人协作时就可以很明了看出哪行代码是谁写的。

如果文件太大,也可加上-L参数,再写上指定行数,可以只显示指定行数的内容

git blame -L 5,10 index.html

这样只会显示index.html文件的第5~10行的信息

  • 你通过监控查到了是自己干的好事,顿时脸红的像个猴屁股样的!




6.废话时间


移步下一篇,谢谢!



下一篇文章:Git学习四:撤销

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-10-28 12:34:37  更:2021-10-28 12:34:43 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 20:45:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码