ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Git初学总结笔记

2022-03-20 15:31:22  阅读:214  来源: 互联网

标签:git 初学 笔记 project add Git master commit txt


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’安装和操作的基本功能。
主要是一些本地的功能,当前还没有链接到远程仓库!
留做笔记,以后回顾学习。

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

标签:git,初学,笔记,project,add,Git,master,commit,txt
来源: https://blog.csdn.net/donghening/article/details/123609586

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有