git学习笔记

git学习

1、

在git bash 中进入下级文件-----$ cd 文件夹名 或者cd 路径(注意要是属于下级的路径)

  • 返回上级---------$ cd ..

  • 返回根目录------$ cd /

  • 查看当前路径----$ pwd

2、

理解工作区和暂存区

工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。

Git跟踪并管理的是修改,而非文件:

每次修改之后,如果不用git add到暂存区,那就不会加入到commit中。
例如:第一次修改 -> git add -> 第二次修改 -> git commit 第一次的修改被提交了,第二次的修改不会被提交。
提交后,用git diff HEAD -- readme.txt命令可以查看工作区和版本库里面最新版本文本的区别,通过git status也可以知道没有暂存add.

创建删除版本库

  • 在git bash 中创建文件夹 ------ $ mkdir 文件夹名
  • 将当前目录变成一个仓库 仓库初始化------ $ git init 当前目录下会多了一个.git的目录 ,会有一个master分支
  • 查看当前目录下的子目录--------$ ls -ah
  • 删除本地仓库--------就是删除仓库文件夹下隐藏的 .git 目录 步骤:$ ls -ah 显示子目录 然后 $ rm -rf .git 可以看到master分支已经删除 ,该文件已经不再作为仓库

添加文件到Git仓库,分两步:

  • git add <file>
  • git commit -m <message>

使用命令git add <file>,注意,可反复多次使用,添加多个文件; git add 后的文件为暂存状态实际上就是把文件修改添加到暂存区
使用命令git commit -m <message>,完成。 提交过得文件,保存在自己本地的仓库 实际上就是把暂存区的所有内容提交到当前分支。因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在,git commit就是往master分支上提交更改
例如:

$ git add file1.txt
$ git add file2.txt file3.txt
$ git commit -m "add 3 files.

版本回退

  • $ git status命令可以让我们时刻掌握仓库当前的状态,红色是未add过的,绿色是add过没有提交的
  • $ git diff 文件名 -------顾名思义就是查看difference作了什么修改 (好像只能看到未add的文件的修改???)
  • $ git diff HEAD -- 文件名 ------查看工作区和版本库里面最新版本文本的区别

commit之后用$ git status 会显示nothing to commit, working tree clean当前没有需要提交的修改,而且,工作目录是干净

$ git log----可以查看提交历史版本,便确定要回退到哪个版本
$ git log --pretty=oneline ----查看提交历史版本简化显示
$ git reflog ------查看命令历史,以便确定要回到未来的哪个版本。
HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id。
git reset --hard commit_id(版本号) 可以到指定的版本 git reset --hard HEAD^ 返回git log 中显示的上一个版本

撤销修改

  • 情境1 $ git restore 文件名---------在工作区自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
  • 情境2 $ git restore --staged 文件名-----------已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。回到上个情况然后再利用 $ git restore 文件名 撤销工作区的修改
    总之,就是让这个文件回到最近一次git commit或git add时的状态。
  • 情境3 如果不仅add了,还commit提交到版本库了就利用 $ git log 或者 $ git reflog 查看版本号来直接回退版本不过前提是没有推送到远程库。

删除文件

在Git中,删除也是一个修改操作
删除流程:方法一:文件管理器中删除-----git status 查看知道删除了但是没有暂存(情境1)---- $ git rm 文件名 删除文件并暂存(情境2)------$ git commit -m " " 提交版本库(情境3)
方法二: 直接$ git rm 文件名 删除文件并暂存(情境2)------$ git commit -m " " 提交版本库(情境3)
删除也是一种修改:若要撤销删除操作参考上面的撤销修改3种对应情境

注意:从来没有被添加到版本库就被删除的文件,是无法恢复的!

3、

git中 vi 操作

  • $ vi fileName // 进入编辑文件

  • $ cat fileName //可以查看文本内容

  • vi 操作 分命令模式+输入模式,按ESC切换模式。
    :i 输入内容 :q 退出 :q!强制退出 :wq保存并退出 :数值—定位到某一行 /查找斜杠后面的内容 :wq 退出编辑状态, 回到命令窗口

注:

Windows系统,为了避免遇到各种莫名其妙的问题,请确保目录名(包括父目录)不包含中文。

cd / cd .. 中间有空格

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Git教程 一、Git简介 1.1. Git的诞生1.2.集中式的vs分布式 二、安装Git 三、创建版本库 四、...
    曹渊说创业阅读 1,023评论 0 2
  • 一、常用终端指令 $ pwd用于查看当前目录 $ mkdir learngit 创建一个名为learngit的空目...
    天山雪莲_38324阅读 513评论 0 1
  • ----------------- Git 学习 ------------------ Git 简介 Git...
    Junting阅读 2,354评论 0 3
  • 0. 前言 git在团队协作中有重要作用,是有必要进行系统学习的一门工具。本篇是笔者学习git操作的备忘笔记,主要...
    dounine阅读 1,114评论 0 2
  • 简书本身不支持生成目录,自己通过pandoc生成的目录在简书也变成了新页面打开。心好累,推荐大家用这个简书文章左侧...
    mkitclear阅读 439评论 0 0

友情链接更多精彩内容