git总结

这篇博客详细介绍了Git的基本操作,包括如何初始化版本库、添加文件(单个和批量)、查看文件状态、理解Git的文件分类、提交代码、查看历史记录以及使用diff进行文件差异比较。此外,还讲解了如何进行增补提交、检出和重置等高级操作,是学习Git的实用教程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

初始化一个版本库

$ git init 在当前目录中增加一个.git目录 ,当前目录一般是项目的根目录
TIP: 不要自行修改这个目录里面的文件。

添加文件

$ echo ’ < html > < head >< title>test< /title>< /head>< body>My Website< /body>< /html>’ > index.html
输入一个内容,重定向到index.html中
$ git add index.html

单个文件添加

这一步是把文件的当前变化增加到索引中,也就是以后这个文件需呀版本库来跟踪管理,注意这不是提交此时,文件还可以继续修改,还可以添加新的被跟踪文件,一定要add才能吧这些改变加入到索引中

批量添加

$ git add .

.点号,代表当前目录,该命令将递归添加当前目录及其子目录所有文件,只要是目录,就会递归添加该目录下的文件和子目录。

状态查看

git status

1.没有添加到 index索引中的样式
On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        index.html

nothing added to commit but untracked files present (use "git add" to track)
2.添加到index索引中的样式(add后)
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

        new file:   index.html
3.缓存到本地仓库的样式
On branch master
nothing to commit, working tree clean

Git的文件分类

  • 追踪的Tracked,已经加入版本库的文件

  • 未追踪的Untracked ,未加入到版本库的未被管理的文件

  • 忽略的ignored ,git不再关注的文件,例如一些临时文件

    • .gitignore 文件中,目录以/结尾,行起始的!是取反
    • .gitgnore 内容如下
*.ipynb  #忽略扩展名是ipynb的文件
__ pycache __/ #忽略__pycache__/目录下的文件
 . * #忽略所有文件

提交代码

commit 提交更改到版本库
-m 填写本次日志消息,必须写。工作中,程序员应该对每一次提交写明做了什么改变

修改后再次提交

sed -i -r 's@(< body>)(.*)(</ body>)@\1Welcome to \2\3@' index.html

git的提交

git的提交分为两个步骤:
暂存变更:add作用是把新文件或者文件新的改动添加到一个暂存区stage,也就是加入到index中
提交变更:commit提交的是暂存区中的改动,而不是物理文件目前的改动,提交到当前分支,默认是master分支也可以使用下面命令,将两步合成一步
$ git commit index.html
-a,–all 会把所有跟踪的文件的改动自动暂存,然后commit。上面命令未提交message,会出现一个类似vi命令的操作界面,需要编写message之后,才行。
也可以使用下面的命令,把message信息一并填写了。

增补

$ touch about.htm $ git add about.htm $ git commit --amend
–amend 修改,通过创建一个新的commit来replace当前分支的顶部。
也可以在命令中继续使用-m选项直接提交message。

查看历史记录

git log 查看一下版本库里面提交的历史记录
git relog 查看提交过的历史记录

diff比较

  • git diff 查看被跟踪文件未暂存的修改,比较暂存区和工作区
  • git diff --cached 查看被跟踪文件暂存的修改,比较暂存区和上一次commit的差异
  • git diff HEAD ,查看被跟踪文件,比较工作区和上一次commit的差异。HEAD指代最后一次commit

1在about.html中添加数据

git diff

$ git diff
diff --git a/about.html b/about.html
index e69de29..89ae2d6 100644
--- a/about.html
+++ b/about.html
@@ -0,0 +1 @@
+<html>nihao</html>
\ No newline at end of file

Administrator@WIN-P5OCO7VT18O MINGW64 /i/test (master)

git diff -cached

$ git diff --cached

Administrator@WIN-P5OCO7VT18O MINGW64 /i/test (master)

git diff HEAD

$ git diff HEAD
diff --git a/about.html b/about.html
index e69de29..89ae2d6 100644
--- a/about.html
+++ b/about.html
@@ -0,0 +1 @@
+<html>nihao</html>
\ No newline at end of file

2 git add 放入缓冲区

git diff

$ git diff	
Administrator@WIN-P5OCO7VT18O MINGW64 /i/test (master)

git diff -cached

$ git diff --cached

diff --git a/about.html b/about.html
index e69de29..89ae2d6 100644
--- a/about.html
+++ b/about.html
@@ -0,0 +1 @@
+<html>nihao</html>
\ No newline at end of file

Administrator@WIN-P5OCO7VT18O MINGW64 /i/test (master)

git diff HEAD

$ git diff HEAD

diff --git a/about.html b/about.html
index e69de29..89ae2d6 100644
--- a/about.html
+++ b/about.html
@@ -0,0 +1 @@
+<html>nihao</html>
\ No newline at end of file

3 commit数据到本地版本库

git diff

$ git diff	
Administrator@WIN-P5OCO7VT18O MINGW64 /i/test (master)

git diff -cached

$ git diff --cached
Administrator@WIN-P5OCO7VT18O MINGW64 /i/test (master)

git diff HEAD

$ git diff HEAD
Administrator@WIN-P5OCO7VT18O MINGW64 /i/test (master)

检出和重置

checkout 用于切换分支,或恢复工作区文件。
TIP: checkout 用于切换分支,或恢复工作区文件。

命令说明
git checkout列出暂存区可以被检出的文件
git checkout file从暂存区检出文件到工作区,就是覆盖工作区文件,可指定检出的文件。但是不清除stage
git checkout commitfile检出某个commit的指定文件到暂存区和工作区
git checkout .检出暂存区的所有文件到工作区
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值