git 命令和linux命令以及npm的使用

一、介绍git

  • 1、Git 是一个开源的分布式版本控制系统。版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。
  • 2、什么叫做集中版本控制系统和分布式控制系统
    • 集中化的版本控制系统:诸如CVS,Subversion等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。 这么做最显而易见的缺点是中央服务器的单点故障。如果宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。要是中央服务器的磁盘发生故障,碰巧没做备份,或者备份不够及时,就会有丢失数据的风险。最坏的情况是彻底丢失整个项目的所有历史更改记录。 结合图示简单理解就是员工A和员工B只能从总服务器拿数据,并且A和B之间不能传递和修改数据;在这种情况下;如果总服务器崩了则员工就不能拿到新数据接着干活;员工也无法推送数据,还有备份数据丢失的危险。
    • 分布式的版本控制系统:分布式版本控制系统的客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。因为每一次的提取操作,实际上都是一次对代码仓库的完整备份。

GIT的工作原理

  • 工作区:我们能看到的,并且用来写代码的区域
  • 暂存区:临时存储用的
  • 历史区:生成历史版本
  • 代码文件从工作区=>暂存区=>历史区,是把内容复制一份传过去,本区域依然存在这些信息。

git常用命令

初始化配置

  • 配置使用git仓库的人员姓名:git config --global user.name 'xiaominig'
  • 配置使用git仓库人员的eamil:git config -- global user.eamil 'eamil account'
  • 配置到缓存,默认15分钟:git config --global credential.helper cache
  • 修改缓存时间
    • git config --global credential.helper 'cache --timeout=3600'
  • 列举所有的配置:git config -l // 这里是英文的小写L

查看、添加、提交、删除、找回、重置修改文件

  • 显示command的help:git help

  • 显示某次提交的内容:git show

  • 抛弃工作区所选文件的修改:git checkout -- fileName

  • 抛弃工作区全部文件的修改:git checkout .

  • 将所选的修改过的文件上传到暂存区:git add fileName

  • 将修改过的所有文件上传到暂存区:git add .

  • 删除所选的本地文件:git rm fileName

  • 从版本库中删除文件,但是不删除本地文件:git rm fileName --cached

  • 将删除的本地文件恢复到本地

    • 先把文件恢复到工作区:git reset fileName
    • 最后将历史区的文件回滚到工作区:git checkout fileName
  • 将所选文件从暂存区恢复到工作区git reset fileName

  • 所有文件从暂存区恢复到工作区git reset -- .

  • 恢复最近一次提交过的状态,意思就是放弃上次提交后的所有修改。git reset --hard

  • 查看当前文件和暂存区文件的差异git diff fileName

  • 查看所有当前工作区的文件和暂存区的文件差异git diff

  • 查看记录

    • 查看提交历史记录,版本号git log
    • 查看该文件每次的记录提交git log fileName
    • 查看每次详细修改内容的diff
    • 查看所有的历史记录(包括历史区回滚后)git reflog
    • 查看远程仓库的链接git remote -v

初始化(修改)git的信息,一般第一次使用的时候用。

  1. 初始化个人本地信息 (前提是在github上注册过账号)
    • git config --global user.name 'fuaocong'
    • git config --global user.email '2367991928@qq.com'
  2. 查看个人信息初始化是否成功
    • git config --list

将代码从本地提交到中央仓库(远程)

  1. 把本地文件变成一个git仓库
    • git init
  2. 查看本地文件仓库的状态;若文件的颜色是红色则表示文件的修改部分还在工作区(可以不看)
    • git status
  3. 将从工作区提交到暂存区(缓存区);若文件名的颜色是绿色则表示修改部分已经提交到暂存区(缓存区)
    • git add .
  4. 把暂存区(缓存区)的代码提交到历史区,生成历史版本信息
    • git commit -m '备注信息'
  5. 将文件推送到中央仓库
    • 如果是第一次需要绑定中央仓库的地址
      • git remote add 通道名 远程仓库地址
      • git push 通道名
    • 如果已经提交过一次了
      • git pull origin master,先把中央仓库的代码拉下来,然后git add . commit push
      • git push origin master,再把本地的代码上传到中央仓库

提交你的修改

  • 添加当前修改的所有文件到暂存区git add .
  • 自动追踪文件git add -u
  • 把文件从暂存区提交到历史区git commit - m '修改'
  • 推送历史区更新的文件到中央仓库(远程)git push origin master
  • 查看文件状态git status

分支

  • 查看远程分支git branch -r
  • 创建新的分支git branch brName
  • 查看已经被合并到当前的分支的分支git branch --merged
  • 查看还没有合并到当前分支的分支git branch --no-merged
  • 切换到某个分支git checkout brName
  • 创建新分支并切换到新分支git checkout -b newBrName
  • 基于分支brName创建的newBrName新分支,并切换到新分支git checkout -b newBrName brName
  • 删除某个分支git branch -d brName
  • 强制删除某个分支(未被合并的分支删除的时候需要强制)git branch -D brName

分支合并

  • 将brName分支合并到当前分支git merge brName

git远程分支管理

  • 抓取远程仓库所有分支更新比你高合并到本地git pull
  • 抓取远程仓库更新git fetch origin
  • 将远程的主分支合并到本地当前分支git merge origin/master
  • 提交所有分支git push
  • 将本地主分支推到远程主分支git push origin master
  • 将本地主分支推到远程(如远程无主分支则创建,用于初始化远程仓库)git push -u origin master
  • 用本地的分支创建远程分支git push origin localbrName

git远程仓库

  • 删除远程仓库git remote rm 仓库名

代码回滚,不能从历史区回滚到暂存区

从历史区回滚到工作区

  • git checkout

从暂存区回滚到工作区

get reset --hard 版本号

协作开发

  • gitHub中settings里的Collaboration 设置协作开发者,码云中管理里面有开发者设置。
  • 让本地仓库和远程仓库新建一个链接,origin是随便起的一个链接名(可以改成自己想要的,只不过一般都用这个名字)git remote add origin git仓库链接
  • 取消本地仓库和某个远程仓库的链接git remote rm origin 远程仓库链接
  • 查看本地仓库和哪些远程仓库链接git remote -v
  • 删除本地仓库和远程仓库的链接git remote rm orgin(链接名,一般是origin)

将中央仓库的代码拉取到本地

  • 现在本地文件夹初始化一个仓库git init
  • 克隆中央仓库的地址git clone url
  • 添加中央版本库origin,语法为git remote add 通道名 urlgit remote add origin url
  • 查看远程仓库git remote -v

项目开发流程

  1. 组长或者项目负责人先创建中央仓库,创建好公共文件以及reset.css文件,增加写作者等等。
  2. 小组成员基于git clone 链接地址 项目名(可写可不写,写了文件夹名就是它)克隆到本地仓库。(解决了三个事情,第一是初始化一个本地仓库git init,第二和对应的远程仓库也保持了关联git remote add origin 远程仓库链接 ,第三,把远程仓库的代码拉取到了本地git pull origin master
  3. 把修改的代码文件上传到暂存区git add .
  4. 把暂存区的代码上传到历史区git commit -m '备注信息'
  5. 把历史区的代码上传到远程仓库git push origin master

常用的linux命令

  • ls 用来查看当前目录下有哪些文件以及文件夹
  • clear 清屏
  • cd 文件夹名字 切换路径
  • mkdir 创建文件夹
  • touch 创建文件
  • vi 文件名 进入对应的文件 按i键进入编辑状态
  • rm 删除文件
  • rm - rf 文件夹名字 强制删除文件夹

基于npm进行模块管理

  • 把模块安装再当前项目中 npm install XXX
  • 把模块安装再全局环境中 npm install XXX -g
  • 安装指定版本号的模块 npm i XXX@1.0.0
  • 查看模块都有哪些版本号信息 npm view XXX versions
  • 初始化当前项目的配置依赖清单 npm init -y
  • 把模块保存在生产依赖(开发和部署的时候都需要)清单中 npm i XXX --save
  • 把模块保存在开发依赖(只有开发的时候需要)清单中 npm i XXX --save-dev
  • 跑环境,按照清单安装所需的模块 npm i
  • 查看全局安装模块的目录npm root -g
  • 卸载安装过的模块 npm uninstall XXX或者npm uninstall XXX -g

拉取远程指定的分支到本地仓库

  • 初始化本地仓库git init
  • 将本地仓库和远程仓库进行关联git remote add origin 远程仓库链接
  • 将远程分支拉到本地git fetch origin dev dev为远程仓库的分支名
  • 在本地创建分支并切换到该分支git checkout -b dev(本地分支名) origin/dev(远程分支名)
  • 将远程代码拉取到本地git pull origin dev
分类:
前端
标签: