Git初学总结笔记


Git安装

提示:本文的操作都是在Windows平台下运行的:

一、安装Git

直接从官网下载Git安装程序,https://git-scm.com/downloads。按照默认的安装即可。其中有一步会选择使用编辑工具,本人默认选择的是vim,建议使用vim。
安装完成之后在你的开始界面会有如下三个启动:
在这里插入图片描述
1、其中Git CMD和Windows下面的命令提示符非常相似,基本上很鸡肋用不到。
2、Git Bash 是下面主要用到的程序,和Linux下面的vim操作命令很相似。
3、Git的图形化操作界面。

二、设置全局变量以及邮箱

此步骤相当于定义你的用户名和联系方式,以后提交代码时,用的都是你现在设置的名字以及邮箱,具体操作在命令行输入:

   git config --global user.name "your name"
   git config --global user.email "email@emailstation.com"

三、创建版本库

1.创建文件夹

在创建版本库之前首先需要新建一个本地的文件夹,此文件就相当于你的本地代码存储空间:

mkdir foldername #文件夹名字
cd foldername	 #进入文件夹
pwd				 #显示当前路径

若你本来就有文件夹,不需要在新建,则直接进入到现有的文件夹:
注意:使用Git Bash,比如说我要进入e盘下面的project_git文件夹

cd /e/project_git	 #进入文件夹
pwd				 	 #显示当前路径

一定要注意:文件路径确保不要包含中文!!!!!!

2.初始化仓库

创建好目录之后,接下来需要将创建的目录转换为Git可以管理的目录。
代码如下:

git init	#初始化仓库
Initialized empty Git repository ........

运行完之后,大致会给你显示为一个空仓库,这时你会发现,你新建的目录下多了一个 .Git的文件夹,这就是你的仓库管理跟踪的文件夹,一般情况下不要手动改里面的文件,除非你已对其足够了解。若没有出现此文件夹也不要惊慌,很可能是由于你的目录默认是隐藏的,在Git Bash窗口输入:

ls -ah		#显示隐藏文件夹

四、Git的基本使用

1.添加文件

在你上面创建的目录下面新建一个文件夹,并编写某些内容

在这里插入图片描述
上面是我编写的内容,接下来在Git Bash上输入以下代码:

git status			
$ git status		#查看目前你的Git状态
On branch master	#你分支的名字,目前在主分支
No commits yet		#还没有提交记录
Untracked files:	#你修改文件的信息
  (use "git add <file>..." to include in what will be committed)
        helloGit.txt
nothing added to commit but untracked files present (use "git add" to track)

下面我们尝试对该文件进行提交,提交需要两个步骤:

86135@YYW MINGW64 ~/project_git (master)
$ git add helloGit.txt		#添加文件到待处理目录

86135@YYW MINGW64 ~/project_git (master)
$ git commit -m "add my first git file to master"	#上传文件
[master (root-commit) a137293] add my first git file to master
 1 file changed, 2 insertions(+)
 create mode 100644 helloGit.txt

经过上述两步,你就可以将自己所作的更改提交上去,这时再次运行查看状态,你会发现,你所做的更改已经没有了:

86135@YYW MINGW64 ~/project_git (master)
$ git status
On branch master
nothing to commit, working tree clean

注意:上述部分都是在你的Git目录文件夹下操作的,否则Git无法识别到。不是.git!!!

2.版本回退

代码管理很重要的一步!!
试想以下,如果你修改了某一部分的代码,而且你已经进行过保存,而且无法撤回了。这种情况很多很多。。。。。。,但是突然你不想更改了,你想回到你原来的代码上去,你要如何复原代码?待Git为你解决。
下面模拟以下基本的操作步骤:
首先在你上面新建的文件下,新增一些内容如下:
在这里插入图片描述
然后对其尝试添加并提交:

86135@YYW MINGW64 ~/project_git (master)
$ 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:   helloGit.txt
no changes added to commit (use "git add" and/or "git commit -a")
86135@YYW MINGW64 ~/project_git (master)
$ git add helloGit.txt
86135@YYW MINGW64 ~/project_git (master)
$ git commit -m "append new row line"
[master fad6d2a] append new row line
 1 file changed, 2 insertions(+), 1 deletion(-)

目前,我们已经提交了两版文件,接下来为了显示Git的强大功能,我们在提交一版
重复以上操作:
在这里插入图片描述
接下来我们利用git查看以下提交记录:

86135@YYW MINGW64 ~/project_git (master)
$ git log		#查看日志
commit e9010020ca80b87fdb7c013c252bbbf042733051 (HEAD -> master)
Author: dong-hening <dhn13503224345@163.com>
Date:   Sun Mar 20 11:55:07 2022 +0800
    append new row line
commit fad6d2a18bd7a877d979f16860aae1b9701a2e75
Author: dong-hening <dhn13503224345@163.com>
Date:   Sun Mar 20 11:45:49 2022 +0800
    append new row line
commit a1372934e13cf3465af8d4080bced3fff342d1f3
Author: dong-hening <dhn13503224345@163.com>
Date:   Sun Mar 20 11:38:08 2022 +0800
    add my first git file to master

若嫌输出信息太多,则在git log 后加 --pretty=oneline参数

接下来进行版本回退:
在Git中,用HEAD表示当前版本,也就是最新的提交1094adb…(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD,上上一个版本就是HEAD,如有100个版本,当然不可能写100个,写为HEAD^100.

86135@YYW MINGW64 ~/project_git (master)
$ git reset --hard HEAD^		#进行版本回退到指定提交记录
HEAD is now at fad6d2a append new row line

接下来打开你的文件查看内容:
在这里插入图片描述
它已经回退到你原来的版本。
现在再来看一下你的Git状态:

$ git log
commit fad6d2a18bd7a877d979f16860aae1b9701a2e75 (HEAD -> master)
Author: dong-hening <dhn13503224345@163.com>
Date:   Sun Mar 20 11:45:49 2022 +0800

    append new row line

commit a1372934e13cf3465af8d4080bced3fff342d1f3
Author: dong-hening <dhn13503224345@163.com>
Date:   Sun Mar 20 11:38:08 2022 +0800

    add my first git file to master

现在只有你的两次记录。
现在问题来了,最新的版本没有了!!!。现在你想回到最新的某个版本,怎么办???下面有两种解决方案:
1、命令窗口还没关闭
若窗口还没有关闭,则你可以一直往上面翻啊翻,找啊找,找到你的想回到版本的id号上面去。比如说:
我想回到这里:在这里插入图片描述
输入:

$ git reset --hard e90100	同上
HEAD is now at e901002 append new row line

在回头来看你的文件:
在这里插入图片描述
已经到了你的新版本了。
2、窗口关闭了
窗口关闭了怎么办?这样你就找不到你的id号了。下面看看Git的强大功能

$ git reflog		#查看历史上的记录
e901002 (HEAD -> master) HEAD@{0}: reset: moving to e90100
fad6d2a HEAD@{1}: reset: moving to HEAD^
e901002 (HEAD -> master) HEAD@{2}: commit: append new row line
fad6d2a HEAD@{3}: commit: append new row line
a137293 HEAD@{4}: commit (initial): add my first git file to master

这里记录了你的所有操作记录。你可以轻松找到任何一个版本!

3.撤销更改

	如果你想撤销某一些你做的更改,如果错误发现的计时,则你可以手动在文件内删除某一行。若你在文件内无法找到,则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:   helloGit.txt

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

他告诉你可以用restore操作来丢弃工作区的修改,我告诉你除了restore也可以用checkout来实现同样的更改…
如下:

$ git restore helloGit.txt	#撤销更改1

86135@YYW MINGW64 ~/project_git (master)
$ cat helloGit.txt		#查看文件
echo 'myfirst git file'.
echo 'hello world'.
echo 'hello git'.
echo 'for commit to commit'.
86135@YYW MINGW64 ~/project_git (master)
$ 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:   helloGit.txt

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

86135@YYW MINGW64 ~/project_git (master)
$ git checkout -- helloGit.txt		#撤销更改2

86135@YYW MINGW64 ~/project_git (master)
$ cat helloGit.txt
echo 'myfirst git file'.
echo 'hello world'.
echo 'hello git'.
echo 'for commit to commit'.
86135@YYW MINGW64 ~/project_git (master)
上面的两句代码应用于还没就进行过 git add 的,也就是你还没有放到你的暂存区,目前还在你的工作区内。

假如你已经进行过 git add 怎么办???。解析来验证一下:

	$ 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:   helloGit.txt

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

86135@YYW MINGW64 ~/project_git (master)
$ git add helloGit.txt

86135@YYW MINGW64 ~/project_git (master)
$ git status
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        modified:   helloGit.txt

这里看,他告诉你可以用git restore --staged 来进行,我告诉你也可以用git reset来进行操作。如下:

$ git reset head helloGit.txt	#恢复某个文件
Unstaged changes after reset:
M       helloGit.txt

86135@YYW MINGW64 ~/project_git (master)
$ 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:   helloGit.txt

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

unbelievable!!!
第二种方法:

86135@YYW MINGW64 ~/project_git (master)
$ git add helloGit.txt
86135@YYW MINGW64 ~/project_git (master)
$ git status
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        modified:   helloGit.txt
86135@YYW MINGW64 ~/project_git (master)
$ git restore --staged helloGit.txt		#同上,恢复某个文件
86135@YYW MINGW64 ~/project_git (master)
$ 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:   helloGit.txt
no changes added to commit (use "git add" and/or "git commit -a")
	和上面的效果是一样的。接下来同样用checkout -- 或者是 restore 来丢弃你的更改。不过需要注意的是:这里你的代码是没有进行过commit的,若进行过commit,xdm,版本回退吧。若已经提交到了远程库,那就没办法了。

3.删除文件

	现在为了操作方便,我们在文件夹内新增一个文件,delete.txt。并且去add并且commit它。然后用git查看一下目前的状态。
		$ git status
On branch master
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        delete.txt
nothing added to commit but untracked files present (use "git add" to track)

一般情况下你可以直接删除掉这个文件。

$ git add delete.txt
86135@YYW MINGW64 ~/project_git (master)
$ git commit -m "add one delete file"
[master db37205] add one delete file
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 delete.txt
86135@YYW MINGW64 ~/project_git (master)
$ rm delete.txt		#删除文件
86135@YYW MINGW64 ~/project_git (master)
$ git status
On branch master
Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        deleted:    delete.txt
no changes added to commit (use "git add" and/or "git commit -a")

如代码,git已经知道了你删除了某些文件,现在你有两种选择:
一是确实要从版本库中删除该文件,那就用命令git rm删掉,并且git commit

86135@YYW MINGW64 ~/project_git (master)
$ git rm delete.txt		#真正的删除文件
rm 'delete.txt'

86135@YYW MINGW64 ~/project_git (master)
$ git status
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        deleted:    delete.txt

可以看到,文件已经彻底删除了,已经从版本库中删除了。

二是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本

86135@YYW MINGW64 ~/project_git (master)
$ git restore delete.txt		#恢复删除的文件
86135@YYW MINGW64 ~/project_git (master)
$ git status
On branch master
nothing to commit, working tree clean

可以看到你的胡汉三又回来了!

注意:从来没有被添加到版本库就被删除的文件,是无法恢复的!!!!!!!!!
命令git rm用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容

总结

上面主要介绍了一些git’安装和操作的基本功能。
主要是一些本地的功能,当前还没有链接到远程仓库!
留做笔记,以后回顾学习。

下一篇文章,一起学习一下远程链接和分支管理。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值