git笔记

安装完毕进行初始化

//配置用户名
git config --global user.name 用户名
//配置用户邮箱
git config --global user.email 用户邮箱
//检查已经有的配置信息
git config --list
//查看当期版本
git --version
//生成一个仓库
git init

常用的Linux命令

1.【clear】 清除屏幕
2.【echo】  往控制台输出信息
3.【ll】 将当前文件下的子文件和子目录平铺在控制台
4.【find 目录名】 查看指定目录下的所有的目录,以及目录下的文件
5.【find 目录名 -type f】 将对应目录下的文件平铺在控制台
6.【rm 文件名】 删除文件名
7.【MV 源文件 重命名文件】重命名文件
8.【cat 文件的url 】查看文件的内容
9.【vim编辑器修改文件】
	- 【i】进入插入模式,进行文件编辑
	- 【esc】退出插入模式
	- 【:wq】保存并退出
	- 【q!】强制退出,不保存
	- 【set nu】显示行号

三个区域

​ 工作区

​ 暂存区

​ 版本区

对象

​ git对象

​ 树对象

​ 提交对象

git最基本的一套操作流程

//在工作目录进行初始化
git init
//将文件添加到暂存区(已跟踪状态)
git add [file1] [file2] ...

【工作目录的文件分为已跟踪和未跟踪状态,已跟踪状态又分为,已修改、已暂存、已提交,三个状态】

//将暂存区内容添加到仓库中
git commit -m ""
//查看文件的状态
git status

【如果对一个文件进行了修改操作之后,想要提交修改后的版本,则需要再使用[git add]命令来讲修改后的文件添加到暂存区,这样提交的文件才是修改后的版本】

git高层命令

命令作用备注
git diff列出文件中已经修改但未暂存的内容绿色
git status查看文件的状态红色,表示修改已经修改了,还未暂存;绿色表示已经暂存了
git diff --cached || git diff --staged查看文件中那些内容已经暂存起来了,但还未提交绿色,还未暂存的内容不会显示,只会显示暂存 的内容;已经提交的是白色显示
git commit -m 描述信息 || git commit提交文件,第二种方式会进入vim编辑器,在里面添加文件的描述信息
git commit -a跳过git add暂存这个步骤,直接提交跟踪过[git add]的文件才能使用-a参数
mv 源文件 重命名文件重命名一个文件,重命名之后要统一进行[git add]操作,之后再提交使用Linux命令重命名之后,git会认为是删除源文件,新建一个重命名文件
git log查看日志查看操作的历史记录
git log --pretty=oneline让历史记录一行一行的显示
git rm [file]删除文件,不用再[git add],直接提交工作目录中也会删除,删除之后记得提交
git ls-files -s查看暂存区中的文件
git cat-file -[参数] [要查看的文件的哈希值]查看暂存区中的文件中的具体内容参数为p,查看内容
参数为t,查看文件类型

git分支【杀手功能】

  • 分支就是一个活动的指针,指向当前的提交对象
  • master是默认有的分支【主分支】,永远指向我们最新的那一次提交
命令作用备注
git branch获取当前分支列表
git branch [name]创建一个分支[name]:分支
571faf1 (HEAD -> master, boot) delete toTest.txt
git checkout [name]切换分支
每次切换分支前,当前分支一定得是已提交状态,
如果不是已提交状态,存在着修改未暂存或者暂存未提交,
则会将这些状态【存在着修改未暂存或者暂存未提交】
的文件一起带到切换的目标分支,
污染目标分支的文件目录
571faf1 (HEAD -> boot, master) delete toTest.txt
切换分支会改变3个地方:1.工作目录;2.暂存区;3.heade
文件只要提交过一次,在修改里面的内容
然后没有保存或者暂存了没有提交,此时尝试切换到其他分支,是不让切换的;
但是如果是新建的一个文件,没有提交过的,
修改了未暂存或者暂存了未提交,
此时切换到别的分支
则会将这些状态【存在着修改未暂存或者暂存未提交】
的文件一起带到切换的目标分支,
污染目标分支的文件目录
git config --global alias.[name] “源命令”给命令起别名[name]表示源命令的别名称,源命令除了只有一个单词的情况,都要加双引号
git log --oneline --decorate --graph --all查看全部分支的日志给此命令起别名为loglist:
git config --global alias.loglist log --oneline --decorate --graph --all【注意,源命令中要去掉git】
git branch -D [分支名称]删除分支强制删除,删除之后整个分支日志列表中的相关内容也会删除
git branch -v查看每一个分支的最后一次提交信息master 571faf1 delete toTest.txt
git branch [分支名称] 哈希值创建一个分支指向对应的提交对象切换到指定的【哈希值】对应的提交时的状态
git checkout -b [分支名称]创建并且切换到该分支
git merge [分支名称]合并分支在主分支上合并其他分支,如果产生冲突,调整了代码之后一定要记得[git add]和[git commise -a]
git ls-files -s查看暂存区的内容
git stash会把所有未提交的修改(包括暂存的和非暂存的)都保存起来
git stash apply [存储的名称]将暂时存储的内容拿出来,拿出来之
后原来的存储还在,要进行删除操作
git stash drop [存储的名称]删除暂时存储的空间
git stash pop去除暂时存储的内容,并将存储空间删除
git stash list查看暂时存储空间

后悔药

工作区
  • 撤回自己在工作目录中的修改
  • git checkout [filename] 撤回修改
暂存区
  • 撤回暂存
  • git reset HEAD [filename] 撤回暂存操作
版本库
  • 撤回自己的提交
  • git commit --amend
    • 可以重新修改注释,再提交

reset三部曲

第一部
  • git reset --soft HEAD~ 带着分支将HEAD移动上一个提交对象
  • git reset --soft 哈希值 带着分支将HEAD移动到指定的提交对象
    • 只会改变HEAD的内容
    • 工作目录中的内容不会改变
第二部
  • git reset --mixed HEAD~
    • 会改变HEAD的内容
    • 会改变暂存区的内容,暂存区的内容会变成移动到的提交对象提交时候的状态
      • git ls-files -s ,查看暂存区中的文件
      • git cat-file -p,查看暂存区中的文件中的内容
    • 工作目录的内容不会改变
第三部
  • git reset --hard HEAD
  • git reset --hard [哈希值]
    • 会改变HEAD的内容
    • 会改变暂存区的内容
    • 会改变工作目录的内容

数据恢复

  • 可以使用git reset --hard [哈希值]到指定的提交对象节点
  • 可以在指定的提交对象节点,创建一个分支来指向塔

打tag

  • 创建tag
    • git tag [v1.0]
    • git tag [v1,0] [哈希值],在指定的提交节点打tag
  • 查看tag
    • git show
    • git show[v1.0]
  • 删除tag
    • git tag -d [v1.0]
  • 切换到指定的tag节点
    • git checkout [v1.0]
    • 切换之后要创建一个分支来指向此tag节点

eslint

  • 安装eslint

    • npm init -y,创建package.json文件
    • 使用 npm i eslint --save-dev 命令下载
  • 配置package.json

    • "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1",
        "lint": "eslint./src",
        "lint:create": "eslint --init"
      },
      
  • eslint结合哈士奇使用

    • 哈士奇为git仓库设置钩子程序

      • 使用

        • 在仓库初始化完毕之后,再安装哈士奇

        • 在package.json文件中编写配置

          • "husky":{
                "hooks":{
                    // 在git commit之前要通过nom run lint的检查,
                    // 只有当npm run lint 不报错时,commit才能真正的运行
                    "pre-commit":"npm run lint"
                }
            }
            

远程仓库(gitee)

  • 创建远程仓库
  • 创建本地仓库
  • 为远程仓库配置别名&&用户信息
    • git remote add 【taobao】【 https://github.com/passToever/Demi.git】
  • 推送本地项目到远程仓库
    • 推之前如果使用的是https协议,要到windows下清除github相关的凭据
    • 之后使用$ git push 【远程仓库别名】【分支名称】命令将本地项目推送到远程仓库
  • 克隆远程仓库
    • git clone 仓库地址(在本地生成git文件,默认别名为orgin)
    • 克隆之后项目自带的git文件要删除
  • 查看远程仓库
    • git remote
  • 设置push的默认推送
    • git push --set-upstream origin master:master
      • 通过以上设置,设置push默认推送,下次就可以直接使用git push命令将本地仓库推送到远程仓库
      • git branch -vv,查看设置的默认推送关系
  • git fetch(抓取)
    • 拉取远端仓库更新的内容,不会和当前分支合并
    • 之后可以创建一个分支指向该分支节点获取直接合并
  • git pull(拉取)
    • 直接拿到远程仓库更新的内容,并且和当前分支合并

解决冲突

  • 先pull远程仓库,经过合并(自己调整之后)add commit 之后再Git push
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值