首页 > 其他分享 >Git基本原理和初步实战

Git基本原理和初步实战

时间:2023-04-25 10:04:11浏览次数:33  
标签:实战 SVN git 基本原理 rebase dota Git commit


Git基本原理和初步实战_git


如果给所有软件列出一个排行榜的话,那么Git定会名列前茅。Git对于代码项目的管理是具有划时代意义的,向Linus致敬,不但写出了可以与Windows争锋的Linux系统,还设计实现了如此强大的版本管理工具。

当我了解Git后,真后悔没有早一点学习它,那样写论文就不用反反复复的修修改改了,能省去多少无用功呀。


文章目录

  • Git
  • Git 和SVN
  • Git 初始化
  • Git本地操作
  • Git最基本的操作
  • Git进阶操作-rebase
  • 常用指令
  • 公众号


Git

Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.

Git is easy to learn and has a tiny footprint with lightning fast performance. It outclasses SCM tools like Subversion, CVS, Perforce, and ClearCase with features like cheap local branching, convenient staging areas, and multiple workflows.

Git 和SVN

Git 不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。

Git 与 SVN 区别点:

  • Git 是分布式的,SVN 不是:这是 Git 和其它非分布式的版本控制系统,例如 SVN,CVS 等,最核心的区别。
  • Git 把内容按元数据方式存储,而 SVN 是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn、.cvs 等的文件夹里。
  • Git 分支和 SVN 的分支不同:分支在 SVN 中一点都不特别,其实它就是版本库中的另外一个目录。
  • Git 的内容完整性要优于 SVN:Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

Git 初始化

任意选择一个文件夹,本文选择新建一个文件夹。使用git init创建一个空的 Git 仓库或重新初始化一个已存在的仓库。

Git基本原理和初步实战_常用指令_02

Git本地操作

Git最基本的操作

Git基本原理和初步实战_初始化_03


图中的index指的稍后所说的暂存区,Objects值得稍后所说的对象区。

新建文件dota.txt。输入内容:dota中最强的英雄是影魔

  1. git status查看状态。此时文件在工作区
  2. Git基本原理和初步实战_初始化_04

  3. git add 通过这个命令将文件放入暂存区
  4. Git基本原理和初步实战_常用指令_05

  5. git commit 通过这个命令将文件放入对象区
  6. Git基本原理和初步实战_初始化_06

  7. git push 通过这个命令将文件push到远端的服务器,比如github。
  8. Git基本原理和初步实战_初始化_07

  9. 在远端的服务器查看提交的文件。
  10. Git基本原理和初步实战_常用指令_08

Git进阶操作-rebase

官方解释的比较繁琐,这里只说比较通用的用法。以某一个commit作为基准进行rebase。下面看具体的例子。

继续上文中的例子,加入我又玩了一段时间dota,发现影魔不是最厉害的,于是修改文件为:dota中最强的英雄是电魂。通过上面的操作将修改的文件放入对象区。

Git基本原理和初步实战_常用指令_09


又玩了一段时间,发现电魂不是最厉害的,于是修改文件为:dota中最强的英雄是卡尔。类似操作,放入对象区。

Git基本原理和初步实战_常用指令_10

继续dota,发现电魂很菜,不想要这个commit了,这个时候就可以rebase了。这里只是演示,实际工作中可能在不知道的情况下,忽然又插入了一个commit,这个时候又需要以新的commit作为基准,那么rebase就是不得不做的事情了。

  1. git log -3 查看最近的3个commit。
  2. git rebase -i 0d3023a 使用第一个commit作为基准。
  3. 因为要删除电魂的commit,所以将pick修改位d,如果其他需求根据需要修改。
  4. wq 保存,有冲突。
  5. 修改冲突文件。修改后的内容是:dota中最强的英雄是卡尔
  6. git add .
  7. git rebase --continue
  8. git log查看修改结果,发现电魂的commit已经被成功移除了。

常用指令

Git基本原理和初步实战_常用指令_11

公众号

Git基本原理和初步实战_常用指令_12


标签:实战,SVN,git,基本原理,rebase,dota,Git,commit
From: https://blog.51cto.com/u_16087831/6223430

相关文章

  • GIT 学习记录
    gitinit--bare git初始化服务器仓库gitinit 初始化本地仓库gitadd. 本地仓库添加gitcommit-m"firstversion" 本地仓库首次提交===本地仓库关联服务器远程仓库===gitremoteaddoriginhttps://github.com/xxxx/frp.git或者gitremoteaddoriginname@192......
  • git撤销刚才的commit
    在我们使用git作为版本控制工具进行代码管理之后,经常性的会碰到一个问题:gitcommit后,如何撤销commit,下面详细讲一下。gitaddnewFilesgitcommit-m'新增xx页面'执行commit后,还没执行push时,想要撤销这次的commit,该怎么办?解决方案:我们可以使用命令:gitreset--softHEAD^ 这样......
  • 使用git同时发送到gitee和github
    首先不用多说就是在你的工作仓库使用: 然后就是gitinitgitadd.gitcommit-m"说明"在就是删除GIt默认远程库名称gitremotermorigin再进行关联gitee和githubgitremoteaddgitee地址gitremoteaddgithub地址最后进行提交:gitpushgiteemaster(如......
  • git-git、gitee使用介绍
    1.git介绍和安装1.我们为什么要使用git?1.1帮助开发者合并开发的代码1.2如果出现冲突代码的合并,会提示后提交代码的开发者,让其解决冲突1.3代码版本的管理,比如要找到之前某个版本的代码做对比,那么需要找到之前某个版本的代码2.svn和git的区别:git是分布式的,有本地和远程两......
  • Swift Codable协议实战:快速、简单、高效地完成JSON和Model转换!
    前言Codable是Swift4.0引入的一种协议,它是一个组合协议,由Decodable和Encodable两个协议组成。它的作用是将模型对象转换为JSON或者是其它的数据格式,也可以反过来将JSON数据转换为模型对象。Encodable和Decodable分别定义了encode(to:)和init(from:)两个协议......
  • Git:
     gitconfigremote.origin.urlhttps://github.com/namespace/repo.gitgitconfig--addremote.origin.fetch+refs/heads/*:refs/remotes/origin/*gitfetch--tags--force--progress--https://github.com/namespace/repo.git+refs/heads/*:refs/remotes/origin/......
  • gitlab 开发人员更换手机后MFA认证无法登录
    目录gitlab开发人员更换手机后MFA认证无法登录解决方法gitlab开发人员更换手机后MFA认证无法登录开发人员用mfa二次认证登录gitlab,有开发更换手机后,发现登录gitlab时必须输入mfa二次认证解决方法需要找运维管理人员,登录mfa取消二次认证,登录后自己再开启二次认证运维人员以......
  • GitLab-DevOps思想
    1、什么是DevOps:  DevOps是Development(开发)和Operations(运维)的缩写,是一组过程、方法与系统的统称;强调“应用程序/软件工程”的开发、技术运营和质量保障(QA)人员之间沟通、协作一体化。实现持续集成、持续交付,包括持续部署。2、DevOps的意义:  ......
  • 【colab】怎么在colab打开github上的ipynb文件
    登录:https://colab.research.google.com/github/将github上的ipynb文件路径复制到框里面即可。......
  • GitLab-CI/CD使用
    一、 二、   GitLabCI/CD是GitLabContinuousIntegration(Gitlab持续集成)的简称。只要在项目仓库的根目录添加.gitlab-ci.yml文件,并且配置了gitlabRunner(运行器),那么每一次push或者合并请求(MergeRequest)都会触发CIPipeline。  1)GitLabRunner可以运行在GNU/Lin......