GIT相关的基础知识

版本控制
  1. 什么是版本控制

    • 版本控制(Revision control)是一种在开发过程中用于管理我们对文件、目录等工程内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术(多人开发就必须使用版本控制,否则代价成本很大)。

    • 特点

      实现跨区域多人协同开发
      追踪和记载一个或者多个文件的历史记录
      组织和保护你的源代码和文档
      统计工作量
      并行开发、提高开发效率
      跟踪记录整个软件的开发过程
      减轻开发人员的负担,节省时间,同时降低人为错误
      简单地说就是用于管理多人协同开发项目的技术。
      
    • 没有进行版本控制或者版本控制本身缺乏正确的流程管理,在软件开发过程中将会引入很多问题,如软件代码的一致性、软件内容的冗余、软件过程的事物性、软件开发过程中的并发性、软件源代码的安全性,以及软件的整合等问题。

    • 无论是工作还是学习,或者是自己做笔记,都经历过这样一个阶段。我们就迫切需要一个版本控制工具!

  2. 常见的版本控制工具

    • 主流的版本控制器有如下这些:

       Git
       SVN(Subversion)
       CVS(Concurrent Versions System)
       VSS(Micorosoft Visual SourceSafe)
       TFS(Team Foundation Server)
       Visual Studio Online 
      
    • 版本控制产品非常的多(Perforce、Rational ClearCase、RCS(GNU Revision Control System)、Serena Dimention、SVK、BitKeeper、Monotone、Bazaar、Mercurial、SourceGear Vault),现在影响力最大且使用最广泛的是Git与SVN。

  3. 版本控制分类

    • 本地版本控制
    • 集中版本控制 SVN
    • 分布式版本控制 Git
常用的Linux命令
cd改变目录
cd..回退到上一个目录,直接cd进入默认目录
pwd显示当前所在的目录路径
touch新建一个文件,如touch index.js,就会在当前目录下新建一个index.js
rm:删除一个文件,rm index.js,就会把Index.js删除
mkdir新建一个目录,就是新建一个文件夹
rm -r删除一个文件夹,rm -r src删除src目录
mv移动文件,mv index.html src
reset 重新初始化终端/清屏
clear清屏
history查看命令历史
help帮助
exit退出
#表示注释
Git相关
  1. Git配置

    • 所有的配置文件,其实都保存在本地
    • 查看配置 git config -l
  2. Git命令

     git remote -v 查看远程仓库地址	 
     git remote rm origin 删除当前远程仓库地址
     git remote add origin url  添加新的远程仓库地址
     git add 把要提交的所有修改放到暂存区
     git commit -m ' '  一次性把暂存区的所有修改提交到分支
     rm -rf .git/ 删除git
     git push origin master -u 将文件推送到远程仓库
     git diff 比较的是工作区与资源库的不同
     git diff --staged(比较的是暂存区和资源库的不同)
     git log 查看提交日志(显示从最近到最远的日志)
     git log --oneline 查看提交日志 在一行显示
     git reset --soft HEAD~ 回到暂存区
     git restore --staged 还原
     git revert 恢复文件的历史版本
     git checkout --<file> 撤销修改
     git stash 保存,恢复,删除工作状态
     git branch  dev 创建分支 /git branch 查看当前分支
     git checkout dev 切换分支
     git checkout -b dev 创建并切换(相当于上面两条命令)
     git merge dev 用于合并指定分支到当前分支
     git switch master 切换分支 
     git switch -c dev 创建并切换到新的分支
     git branch -m dev-3 dev-4 重命名
     git branch -d dev-4 删除分支
     git push origin dev 相当于在远程建立一个新的dev分支
     git pull 拉取(每次提交前先pull一下)
     git push 推送
    
    • 在Git中,用HEAD表示当前版本,也就是最新提交的,上一个版本就是HEAD^,当然往上100个版本写100个^容易数不过来,所以写成HEAD~100
    • 要随时掌握工作区的状态,使用git status命令。如果git status告诉你有文件被修改过,用git diff可以查看修改内容。
  3. 关于推送到远程仓库

     新建一个仓库,将项目推送到远程仓库里面(提交是按照每次commit的时间来定的)
     git init 在内部会生成.git文件夹
     git remote -v 查看有没有关联远程仓库
     git remote add origin url 关联远程仓库	
     git push origin master 
     + 前几步就可以完成推送到远程仓库的任务 
     git add .
     git status 查看状态
     git commit -m "信息": 提交到当前的本地仓库(-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录)
     git push origin master 
    
  4. 从远程仓库克隆一个项目

     克隆远程仓库地址
     git bash 进入当前文件夹
     git init 在内部会生成.git文件夹
     git clone url 克隆远程仓库地址
     + 前三步就可以完成从远程克隆一个仓库的任务
     git remote -v 查看远程仓库地址
     git remote add origin url 添加远程仓库地址
     git branch zxshuang 创建一个分支
     git branch 查看分支
     git checkout zxshuang 切换分支
     git add .
     git commit -m '添加了一个名叫zxshuang的分支'
     git push origin zxshuang 向远程仓库推送分支
    

    注意:要克隆一个仓库,首先必须知道仓库的地址,然后使用git clone命令克隆。Git支持多种协议,包括https,但ssh协议速度更快。

  5. Git与SVN的区别

    • SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而工作的时候,用的都是自己的电脑,所以首先要从中央服务器得到最新的版本,然后工作,完成工作后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,对网络带宽要求较高。
    • Git是分布式版本控制系统,每个人的电脑就是一个完整的版本库,工作的时候不需要联网了,因为版本都在自己电脑上。协同的方法是这样的:比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。Git可以直接看到更新了哪些代码和文件!
Git命令相关细节
  1. 修改

    1. 第一次修改->git add ,第二次修改->git commit,Git管理的是修改,当你用git add命令后。在工作区的第一次修改被放入暂存区,准备提交,但是,在工作区的第二次修改并没有放入暂存区,所以,git commit只负责把暂存区的修改提交了,也就是第一次修改被提交了,第二次修改不会被提交。
    2. 第一次修改 -> git add -> 第二次修改 -> git add -> git commit -m这样可以将两次修改一起提交。
    3. git add命令实际上就是把要提交的所有修改放到暂存区(stage),然后执行git commit就可以一次性把暂存区的所有修改提交到分支。
  2. 重命名

    • 直接在系统文件中修改 修改完需要git add . git commit -m “”
    • 直接通过git mv进行修改:git mv src/views/My.vue src/views/Home.vue
  3. 移动

    • 移动文件 git mv src/views/My.vue src/views/My
    • 移动文件夹 git mv src/views/My src/views/pages
  4. 恢复删除

    • 先撤回commit到暂存区 然后再撤回到工作区,然后再还原之前的状态
      • git reset --soft HEAD~
      • git restore --staged src/views/my/index.vue
      • git restore src/views/my/index.vue
    • 从commit直接撤回到工作区之前 git reset --hard Head~
    • 先回到提交之前的状态 git checkout HEAD --src/views/my/index.vue
    • 恢复文件的历史版本 git revert 7654321c
    • 指向之前的某次提交 git reset --soft 65423231c2
  5. 保存 恢复 删除 工作进度 git stash

    • git stash save “修改状态” 保存工作状态
    • git stash list 展示保存工作状态的列表
    • git stash show -p stash@{0} 对比此时工作状态跟仓库文件的区别
    • git stash apply stash@{0} 恢复工作状态
    • git stash drop stash@{0} 删除工作状态

    注意:命令git rm用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。

  6. 工作区和暂存区

    • 工作区(Working Directory),就是你在电脑里能看到地目录。比如我的git文件夹就是一个工作区。
    • 版本库
    • 工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。
    • Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。
    • 指向之前的某次提交 (回退到上一个版本,最新那个版本已经看不到了,往上找版本号,版本号没必要写全,git会自动去找)git reset --hard 35a6,穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
    • 要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本
  7. 管理修改

    • git比其他版本控制系统设计的优秀是因为git跟踪并管理的是修改,而非文件。
  8. 撤销修改

    • 场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout – file。
    • 场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD ,就回到了场景1,第二步按场景1操作。
    • 场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。
  9. 关于分支

    • 我们注意到切换分支使用git checkout ,而前面讲过的撤销修改则是git checkout – ,同一个命令,有两种作用,确实有点令人迷惑。
    • 实际上,切换分支这个动作,用switch更科学。因此,最新版本的Git提供了新的git switch命令来切换分支:
    • 创建并切换到新的dev分支,可以使用:
      • git switch -c dev
    • 直接切换到已有的master分支,可以使用:
      • git switch master
    • 使用新的git switch命令,比git checkout要更容易理解。
  • 拷贝:fork,点击链接->进入fork
  • 注意:还可以用git的可视化工具Sourcetree
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值