git使用教程菜鸟,git使用教程最详细最傻瓜

首页 > 经验 > 作者:YD1662022-10-28 20:35:24

前言

最近想把代码传到GitHub上,结果我发现的demo的npm全是本地安装,上穿到GitHub要死要死,几百M,然后我就搜了下怎么不上传node_modules弄了半天也没成功,于是准备静下心学一下git,也当一个笔记日后好翻阅.

研究前我的只会5个命令

$ git init $ git add . $ git commit -m "提交的xxxxx" $ git pull $ git push 复制代码 Git是什么

Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。 Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。

Git的工作流程

git使用教程菜鸟,git使用教程最详细最傻瓜(1)

  1. 克隆 Git 资源作为工作目录。
  2. 在克隆的资源上添加或修改文件。
  3. 如果其他人修改了,你可以更新资源。
  4. 在提交前查看修改。
  5. 提交修改。
  6. 在修改完成后,如果发现错误,可以撤回提交并再次修改并提交。
基本概念

git使用教程菜鸟,git使用教程最详细最傻瓜(2)

本地仓库(版本库)

版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

本地仓库(版本库)是什么

什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。

暂存区

暂存区:英文叫stage, 或index。一般存放在 ".git目录下" 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。

工作区

工作区:就是你在电脑里能看到的目录。

Git的基本使用

我就不详细介绍了,估计大家都会,就是上面辣个图,图上几个命令

$ git init, //初始化本地仓库 .git $ git status -sb, //显示当前所有文件的状态 $ git diff //查看更改,查看difference,显示的格式正是Unix通用的diff格式, $ git add 文件路径 //用来将变动加到暂存区 $ git commit -m "信息" //用来正式提交变动,提交至 .git 仓库如果有新的变动,我们只需要依次执行 git add xxx 和 git commit -m 'xxx' 两个命令即可 $ git log //查看变更历史 复制代码

版本回退

当我提交了几个commit,假设我们现在有3个版本(1,2,3),现在是版本3,发现刚刚的提交错误了,想撤回回到版本2

$ git reset --hard //重置暂存区与工作区,与上一次commit保持一致 复制代码

然后你由发现刚刚的提交是正确的,又想回到版本3,再输入下面这个命令,相当于你那个回退没有做

$ git reset --hard [commitid] //重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致 //commitid 使用git log --stat查看 复制代码


平行世界B

在平时世界B的你,刚刚把版本回退到了版本2,于是睡觉去了,第二天,发现版本3才是对的,可是使用git log已经查看不到commit信息了,怎么办?

$ git reflog //用来记录你的每一次命令,显示当前分支的最近几次提交 复制代码

场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令

$ git checkout -- file

场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令

$ git reset HEAD file

,就回到了场景1,第二步按场景1操作。

场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,git reset --hard,不过前提是没有推送到远程仓库。

删除文件

$ git rm [file1] [file2] ... //删除工作区文件,并且将这次删除放入暂存区 复制代码

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

$ git checkout -- test.txt 复制代码

分支(branch)

  1. 当我们创建新的分支,例如dev时,Git新建了一个指针叫dev,指向master相同的提交,再把HEAD指向dev,就表示当前分支在dev上:

git使用教程菜鸟,git使用教程最详细最傻瓜(3)


  1. 你看,Git创建一个分支很快,因为除了增加一个dev指针,改改HEAD的指向,工作区的文件都没有任何变化!

不过,从现在开始,对工作区的修改和提交就是针对dev分支了,比如新提交一次后,dev指针往前移动一步,而master指针不变:

git使用教程菜鸟,git使用教程最详细最傻瓜(4)

首页 123下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.