Git学习(零基础)

项目场景:

项目场景:是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 [1] 也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。
就是说Git是一个开源项目版本管理文件,它保存文字效果很好,视频和图片可能会被损坏,但是还是可以保存的咯。


学习流程

1. 安装

没啥印象了,安装好久都没用过(只记得官网下载,傻瓜式安装就好了)

2.基本使用流程

安装后会自动配置环境变量啥的,然后找个位置右击就可以看到Git的两个功能,其中的Git Bash是Windows下的命令行工具。
在这里插入图片描述

创建一个文件夹作为Git的仓库

在这里插入图片描述

接着在命令行中去找到该目录的位置,试了一下,还挺好用的,只要有tab我就觉得好用

在这里插入图片描述

在创建版本库之前设置自己成为管理员

 git config --global user.name "Along"  #添加自己的名字
 git config --global user,email "**.qq.com"  #添加自己的email
 git config user.email  #查看

创建版本库


34886@along MINGW64 /e            #cd到仓库
$ cd GitAlong/
34886@along MINGW64 /e/GitAlong
$ git init                    #创建初始化仓库
Initialized empty Git repository in E:/GitAlong/.git/
34886@along MINGW64 /e/GitAlong (master)
$ ls -a                      #显示当前目录所有文件
./  ../  .git/
34886@along MINGW64 /e/GitAlong (master)
$ touch demo1.py             #创建一个文件
34886@along MINGW64 /e/GitAlong (master)
$ git status                  #当前git状态,没有文件
On branch master
No commits yet
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        demo1.py
nothing added to commit but untracked files present (use "git add" to track)
34886@along MINGW64 /e/GitAlong (master)
$ git add demo1.py          #添加文件到git上
34886@along MINGW64 /e/GitAlong (master)
$ git status                #当前git状态,显示文件
On branch master
No commits yet
Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   demo1.py

在这里插入图片描述

文件的提交和修改

创建一个文件
34886@along MINGW64 /e/GitAlong (master)
$ touch demo1.py
添加文件到git
34886@along MINGW64 /e/GitAlong (master)
$ git add demo1.py
查看当前git状态,没提交,这是上次的demo1
34886@along MINGW64 /e/GitAlong (master)
$ git status
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        modified:   demo1.py

当前文件的状态,以精简的方式显示文件状态。
34886@along MINGW64 /e/GitAlong (master)
$ git status -s
M  demo1.py
提交文件到git上
34886@along MINGW64 /e/GitAlong (master)
$ git commit -m '初始化'
[master 12cb0ef] 初始化
 1 file changed, 1 insertion(+), 1 deletion(-)
打印当前提交日志,提交了三次,所以打印了三条,
34886@along MINGW64 /e/GitAlong (master)
$ git log
commit 12cb0ef539c6579e3f79a3c500581fbb3f1a2555 (HEAD -> master)
Author: Along <3488694526@qq.com>
Date:   Tue Apr 19 17:47:16 2022 +0800

    初始化

commit 7b2ff15d5052cacb88f82d52d14c846266da8308
Author: Along <3488694526@qq.com>
Date:   Tue Apr 19 17:44:04 2022 +0800

    change2

commit 09a1c3e8fc750207fbd3ff74b036816ead38c3e9
Author: Along <3488694526@qq.com>
Date:   Tue Apr 19 17:39:06 2022 +0800

    change1
精简模式的M,新添加的未跟踪文件前面有 ?? 标记,
新添加到暂存区中的文件前面有 A 标记,
修改过的文件前面有 M标记。
M 有两个可以出现的位置,出现在右边的 M 表示该文件被修改了但是还没放入暂存区,出现在靠左边的 M 表示该文件被修改了并放入了暂存区。
34886@along MINGW64 /e/GitAlong (master)
$ git status -s
 M demo1.py
对比修改了啥,--是删除,++是增加
34886@along MINGW64 /e/GitAlong (master)
$ git diff
diff --git a/demo1.py b/demo1.py
index 436ed2c..cd4a228 100644
--- a/demo1.py
+++ b/demo1.py
@@ -1 +1 @@
-我是初始化
\ No newline at end of file
+我已经被修改了
\ No newline at end of file
如果位于没放入暂存区,需要加命令才能查看两次修改的不同
34886@along MINGW64 /e/GitAlong (master)
$ git diff --cached

34886@along MINGW64 /e/GitAlong (master)
$ git diff
diff --git a/demo1.py b/demo1.py
index 436ed2c..c62d5e8 100644
--- a/demo1.py
+++ b/demo1.py
@@ -1 +1,2 @@
-我是初始化
\ No newline at end of file
+我已经被修改了
+我接着改
\ No newline at end of file

写完之后添加所以的文件
34886@along MINGW64 /e/GitAlong (master)
$ git add .

最后提交到git
34886@along MINGW64 /e/GitAlong (master)
$ git commit -m "change already"
[master 907d6c3] change already
 1 file changed, 2 insertions(+), 1 deletion(-)

34886@along MINGW64 /e/GitAlong (master)

回到从前(日志,记录,相关文件都会变)

34886@along MINGW64 /e/GitAlong (master)
$ git log --oneline
d0007d2 (HEAD -> master) change already
12cb0ef 初始化
7b2ff15 change2
09a1c3e change1

34886@along MINGW64 /e/GitAlong (master)
$ git add demo1.py

34886@along MINGW64 /e/GitAlong (master)
$ git status -s
M  demo1.py

34886@along MINGW64 /e/GitAlong (master)
$ git reset demo1.py
Unstaged changes after reset:
M       demo1.py

34886@along MINGW64 /e/GitAlong (master)
$ git log --oneline
d0007d2 (HEAD -> master) change already
12cb0ef 初始化
7b2ff15 change2
09a1c3e change1

34886@along MINGW64 /e/GitAlong (master)
$ git reset --hard HEAD
HEAD is now at d0007d2 change already

34886@along MINGW64 /e/GitAlong (master)
$ git status -s

34886@along MINGW64 /e/GitAlong (master)
$ git reset --hard HEAD^
HEAD is now at 12cb0ef 初始化

34886@along MINGW64 /e/GitAlong (master)
$ git reset --hard HEAD^C

34886@along MINGW64 /e/GitAlong (master)
$ git reset --hard HEAD7b2ff15
fatal: ambiguous argument 'HEAD7b2ff15': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'

34886@along MINGW64 /e/GitAlong (master)
$ git reflog
12cb0ef (HEAD -> master) HEAD@{0}: reset: moving to HEAD^
d0007d2 HEAD@{1}: reset: moving to HEAD
d0007d2 HEAD@{2}: commit (amend): change already
907d6c3 HEAD@{3}: commit: change already
12cb0ef (HEAD -> master) HEAD@{4}: commit: 初始化
7b2ff15 HEAD@{5}: commit: change2
09a1c3e HEAD@{6}: commit (initial): change1

34886@along MINGW64 /e/GitAlong (master)

回到从前(自身文件内容)


34886@along MINGW64 /e/GitAlong (master)
$ git log --oneline
12cb0ef (HEAD -> master) 初始化
7b2ff15 change2
09a1c3e change1

34886@along MINGW64 /e/GitAlong (master)
$ git checkout 12cb0ef -- demo1.py

34886@along MINGW64 /e/GitAlong (master)
$ git add demo1.py

34886@along MINGW64 /e/GitAlong (master)
$ git commit -m "back to change 1 and add comment for demo1.py"
[master 7f59424] back to change 1 and add comment for demo1.py
 1 file changed, 2 insertions(+), 1 deletion(-)

34886@along MINGW64 /e/GitAlong (master)
$ git log --oneline
7f59424 (HEAD -> master) back to change 1 and add comment for demo1.py
12cb0ef 初始化
7b2ff15 change2
09a1c3e change1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值