ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

git相关知识

2021-09-24 10:06:09  阅读:113  来源: 互联网

标签:Git 提交 版本控制 知识 修改 git 版本 相关


版本控制

  1. 什么是版本控制

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

    • 特点

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

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

  2. 常见的版本控制工具

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

       (1)Git
       (2)SVN(Subversion)
       (3)CVS(Concurrent Versions System)
       (4)VSS(Micorosoft Visual SourceSafe)
       (5)TFS(Team Foundation Server)
       (6)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命令

(1)cd改变目录
(2)cd..回退到上一个目录,直接cd进入默认目录
(3)pwd显示当前所在的目录路径
(4)touch新建一个文件,如touch index.js,就会在当前目录下新建一个index.js
(5)rm:删除一个文件,rm index.js,就会把Index.js删除
(6)mkdir新建一个目录,就是新建一个文件夹
(7)rm -r删除一个文件夹,rm -r src删除src目录
(8)mv移动文件,mv index.html src
(9)reset 重新初始化终端/清屏
(10)clear清屏
(11)history查看命令历史
(12)help帮助
(13)exit退出
(14)#表示注释

Git相关

  1. Git配置

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

     (1)git remote -v 查看远程仓库地址	 
     (2)git remote rm origin aqaSDFGUIOP\删除当前远程仓库地址
     (3)git remote add origin url  添加新的远程仓库地址
     (4)rm -rf .git/ 删除git
     (5)git push origin master 将文件推送到远程仓库
     (6)git diff 比较的是工作区与资源库的不同
     (7)git diff --staged(比较的是暂存区和资源库的不同)
     (8)git log 查看提交日志(显示从最近到最远的日志)
     (9)git log --oneline 查看提交日志 在一行显示
     (10)git reset --soft Head~ 回到暂存区
     (11)git restore --staged 还原
     (12)git revert 恢复文件的历史版本
    
    • 在Git中,用HEAD表示当前版本,也就是最新提交的,上一个版本就是HEAD^,当然往上100个版本写100个^容易数不过来,所以写成HEAD~100
    • 要随时掌握工作区的状态,使用git status命令。如果git status告诉你有文件被修改过,用git diff可以查看修改内容。
  3. 关于推送到远程仓库

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

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

  4. 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:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。

标签:Git,提交,版本控制,知识,修改,git,版本,相关
来源: https://blog.csdn.net/m0_56272227/article/details/120415200

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有