git 本地库创建 版本管理

本文介绍了如何使用Git进行版本控制,包括初始化仓库、添加文件、提交更改、查看状态、差异比较和版本回退等基本操作。通过gitinit创建仓库,gitadd和gitcommit保存更改,gitstatus检查状态,gitdiff查看文件差异,gitlog查看提交历史,以及gitreset回退到特定版本。当commitid丢失时,可以使用gitreflog来找回。
摘要由CSDN通过智能技术生成

创建版本库

$ cd ~/Desktop/my_project 

进入 桌面的 my_project 文件夹, 我们需要在这里创建一个git的仓库 初始化

$ git init
Initialized empty Git repository in C:/Users/wjscyc/Desktop/my_project/.git/

我们往里面编写一个 readme.txt文件, 内容如下

hello boys and girsl
today we will learning the git

在本地创建git仓库只需要两步

第一步 , 用命令 git add 告诉 Git, 将文件添加到仓库中

$ git add readme.txt

第二步, 用命令 git commit 告诉Git, 将文件提交到仓库

$ git commit -m"hello boys and girls"
[master (root-commit) 63b095c] hello boys and girls
 1 file changed, 2 insertions(+)
 create mode 100644 readme.txt

commit可以一次提交很多文件, 所以你可以多次add 不同的文件

git status

我们已经向本地的git仓库提交了readme.txt文件, 经过一段时间, 我们发现需要修改这个文件,下面是修改的内容

hello boys and girsl, i miss you soooooo much!!!!
today we will learning the git

先别急着add commit, 我们先用看一下git当前的状态 使用命令git status

$ git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   readme.txt

no changes added to commit (use "git add" and/or "git commit -a")

git已经检测出来我们的readme.txt 文件已经被修改了, 建议我们使用 git addgit commit -a

虽然Git 告诉我们readme.txt已经被修改了, 但是向我们这样没有感情的渣男, 说出去的话马上就忘, “i miss you sooooo much” 根本没有说过, 然后Git就给我们看证据, 并狠狠的打了我们一个巴掌.

$ git diff readme.txt
diff --git a/readme.txt b/readme.txt
index b4aa3bc..67c18d7 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,2 +1,2 @@
-hello boys and girsl
+hello boys and girsl, i miss you soooooo much!!!!
 today we will learning the git
\ No newline at end of file

调用了命令 git diff readme.txt, git diff 后面跟的是文件名

ok, 板上钉钉, 真的是男人的嘴骗人的鬼, 假假假, 急急急.

好吧那就 add commit 一下吧, 就一下 蹭蹭而已]

add命令之后我们再用 git status , 可以看到readme已经被modified

$ git status
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        modified:   readme.txt

commit ,

$ git commit -m"add distributed"
[master 48b9501] add distributed
 1 file changed, 1 insertion(+), 1 deletion(-)

提交后, 我们再用git status命令看看仓库的当前状态

版本回退

现在我们已经掌握了添加文件, 提交文件, 修改文件,

再对这个readme.txt 进行修改

hello boys and girsl, i miss you soooooo much!!!!
today we will learning the git. i love git very much!!!

然后尝试提交

$ git commit -m"love you guys
> "
[master 85d9cf1] love you guys
 1 file changed, 1 insertion(+), 1 deletion(-)

这些commit就像是一些游戏中的存档, 一旦被boss击杀可以返回去. 一旦把文件该乱了, 或者说, 误删了文件,还可以从最近的一个commit这边恢复.

那么这些内容存放在哪里呢, 有没有类似于历史记录的东西呢, 在Git中, 我们用git log 命令查看

$ git log
commit 85d9cf1b0677a108e0afad609e19882d39797a89 (HEAD -> master)
Author: Yancheng <wjscycdsg@gmail.com>
Date:   Fri Jul 21 11:22:24 2023 +0800

    love you guys

commit 48b9501a575e2f46f97b62a7fe88c7fefe1366ce
Author: Yancheng <wjscycdsg@gmail.com>
Date:   Fri Jul 21 11:17:57 2023 +0800

    add distributed

commit 63b095c9c7345f976c6887a9fae3b67d83a782ec
Author: Yancheng <wjscycdsg@gmail.com>
Date:   Fri Jul 21 10:58:02 2023 +0800

    hello boys and girls

注意, 这里只会显示commit后面的内容, 那么commit的作用就显示出来了, 可以让我们更好的了解到我们之前干了什么, 做了什么.

这些内容太长了, 看的有点烦, 我们可以在命令行的后面加上--pretty=oneline参数

那我们就需要用到一个命令git reset了

$ git log --pretty=oneline
85d9cf1b0677a108e0afad609e19882d39797a89 (HEAD -> master) love you guys
48b9501a575e2f46f97b62a7fe88c7fefe1366ce add distributed
63b095c9c7345f976c6887a9fae3b67d83a782ec hello boys and girls

看到的一大串类似 85d9cf1b0...的是commit id版本号,

HEAD 指向的版本就是当前的版本, git reset --hard commit_id 这些id是通过git loggit reflog 找到了commit对应的版本号就可以去到那个地方,

还有一种快捷的方法 git reset --hard HEAD^ HEAD^ 对应着当前版本的前一个 一个^就代表着往前推进一位, 如果要后退100个版本那就写成 HEAD~100

现在我们要将当前版本 love you guys 回退到上一个版本add distributed

现在在调用 git log

$ git log
commit 48b9501a575e2f46f97b62a7fe88c7fefe1366ce (HEAD -> master)
Author: Yancheng <wjscycdsg@gmail.com>
Date:   Fri Jul 21 11:17:57 2023 +0800

    add distributed

commit 63b095c9c7345f976c6887a9fae3b67d83a782ec
Author: Yancheng <wjscycdsg@gmail.com>
Date:   Fri Jul 21 10:58:02 2023 +0800

    hello boys and girls

发现原来的 love you guys 已经不见了, 但是我们又想到回到那个地方呢? 需要知道那个地方的commit id, 85d9…

不幸的是git bash不小心被我关掉了, 这些commit id已经全部看不到了, 这时候怎么办呢? 调用git relog!!! 拯救世界


$ git reflog
48b9501 (HEAD -> master) HEAD@{0}: reset: moving to HEAD^
85d9cf1 HEAD@{1}: reset: moving to HEAD
85d9cf1 HEAD@{2}: commit: love you guys
48b9501 (HEAD -> master) HEAD@{3}: commit: add distributed
63b095c HEAD@{4}: commit (initial): hello boys and girls

ok, 我们找到了那个地方

输入

git reset --hard 85d9

git reset --hard commit_id

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值