热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

git的那点东西,随心记

目前常用的项目版本管理,协同开发的工具有SVN和GIT,本次就记录一下GIT的基本使用。git下载地址:https:git-scm.comdownloads*根据自己的操作系

  目前常用的项目版本管理,协同开发的工具有SVN和GIT,本次就记录一下GIT的基本使用。

  git下载地址:https://git-scm.com/downloads

  *根据自己的操作系统进行选择(这里就省略了GIT的安装了

  这个时候我们在D盘创建一个文件夹用来演示git的基本指令的使用。(创建的文件夹要求是英文且无空格。)

  进入到 gittest 文件夹 然后在任意位置点击鼠标右键选择 Git Bash Here 

  

  此时我们需要将当前文件夹变成一个git本地仓库,使用指令是 git init

  执行了指令后,我们可以看到提示说在我们本地创建完成一个本地仓库名字为.git,这个.git文件夹是一个隐藏文件,只要打开显示隐藏文件才能看到。

  初始化本地仓库以后,我们需要设置签名,设置签名的话有两种,一种是仓库级的表示只在当前的本地仓库有效,还有一种是系统级别的,就在只要是在这个计算机上的所有项目都有效。指令如下:

  仓库级:git config user.name xxxx

      git config user.email xxxx

  系统级:git config --global user.name xxxx

      git config --global user.emal xxxx

  

  这里我就设置了一个仓库级的签名,设置完成以后我们可以在.git目录下查看到

   设置完这些以后,我们开始对本地仓库进行操作

  一、添加一个文件到本地仓库

  1、本地仓库基本操作

  在文件中随意输入一些文字,文件输入需要先按键盘的   i    才可以进行编辑文本,确认以后,先按 esc  在输入 :wq   进行保存退出

  查看当前git的工作区情况(git status)

  我们可以发现,目前提示我们要我们将文件添加到缓存区 (git add 文件名)

  继续查看当前状态

  当前表示说我们已经将文件提交到了缓存区,我们可以使用 git rm --cached 文件名   指令将文件从缓存中取出来。

 

  我们将文件再次添加到缓存区,然后再使用 commit 对文件进行提交

  指令解析:git commit -m "在此处写对本次提交的注释" 文件名

  最后提交完成以后,我们可看到提示表示,工作区和缓存区没有要提交的文件

  2、文件的版本切换

  首先我们查看一下当前在git中保存有哪些版本,使用 git log

  可以看到,目前就知道一个版本, HEAD 就是一个指针,执行的当前的版本

 

  我在git中新增了几个版本,当前HEAD指针指向的就是最后一个提交的版本。查看当前版本中的内容

  这里再记录一下, 因为如果我们使用git log 来查看版本的话,对于大量的版本来说就不太方便, 我们可以采用另外一个方式   git reflog

  这种方式相对来说就比较的简洁。然后我们开始进行文件版本的切换(git reset --hard 版本号)

  此时我们可以看到当前指针指向了第一次提交的版本,再查看文件内容

  这里可以看到文件内容就是第一次提交的内容

   3、分支的操作

  分支的好处:例如我们在开发时,一个新人来了,一般我们都不会让他直接的将代码加入到我们的代码中来,所以这个时候我们会让他先创建一个分支,让他在这个分支中书写代码,

        等他写完了再将代码合并到主干来。

  创建分支指令:git branch [分支名]

  查看当前所以分支 git branch -v

  切换分支(git checkout [分支名])

   在当前分支对文件进行修改,然后提交到本地仓库

  切换到主干,将分支进行合并

  在对分支进行合并时,就有了冲突,因为我们在分支中对文件进行了修改,主干不知道,这个时候主干就将分支合并过来后git就会告诉我们有冲突需要处理

  我们对文件进行修改,改成我们所需要的样子,然后再重新提交到本地仓库

 

  我们将文件的冲突解决好后,重新添加到缓存区,然后再提交到本地仓库。但是这里有一个注意事项

  ****** 解决冲突后的文件提交,不要带文件名。

 


推荐阅读
  • php缓存ri,浅析ThinkPHP缓存之快速缓存(F方法)和动态缓存(S方法)(日常整理)
    thinkPHP的F方法只能用于缓存简单数据类型,不支持有效期和缓存对象。S()缓存方法支持有效期,又称动态缓存方法。本文是小编日常整理有关thinkp ... [详细]
  • 本文介绍了5个基本Linux命令行工具的现代化替代品,包括du、top和ncdu。这些替代品在功能上进行了改进,提高了可用性,并且适用于现代化系统。其中,ncdu是du的替代品,它提供了与du类似的结果,但在一个基于curses的交互式界面中,重点关注占用磁盘空间较多的目录。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 学习笔记(34):第三阶段4.2.6:SpringCloud Config配置中心的应用与原理第三阶段4.2.6SpringCloud Config配置中心的应用与原理
    立即学习:https:edu.csdn.netcourseplay29983432482?utm_sourceblogtoedu配置中心得核心逻辑springcloudconfi ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • Java中包装类的设计原因以及操作方法
    本文主要介绍了Java中设计包装类的原因以及操作方法。在Java中,除了对象类型,还有八大基本类型,为了将基本类型转换成对象,Java引入了包装类。文章通过介绍包装类的定义和实现,解答了为什么需要包装类的问题,并提供了简单易用的操作方法。通过本文的学习,读者可以更好地理解和应用Java中的包装类。 ... [详细]
  • 本文介绍了如何清除Eclipse中SVN用户的设置。首先需要查看使用的SVN接口,然后根据接口类型找到相应的目录并删除相关文件。最后使用SVN更新或提交来应用更改。 ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • 本文详细介绍了git常用命令及其操作方法,包括查看、添加、提交、删除、找回等操作,以及如何重置修改文件、抛弃工作区修改、将工作文件提交到本地暂存区、从版本库中删除文件等。同时还介绍了如何从暂存区恢复到工作文件、恢复最近一次提交过的状态,以及如何合并多个操作等。 ... [详细]
  • 本文介绍了Composer依赖管理的重要性及使用方法。对于现代语言而言,包管理器是标配,而Composer作为PHP的包管理器,解决了PEAR的问题,并且使用简单,方便提交自己的包。文章还提到了使用Composer能够避免各种include的问题,避免命名空间冲突,并且能够方便地安装升级扩展包。 ... [详细]
  • 全面介绍Windows内存管理机制及C++内存分配实例(四):内存映射文件
    本文旨在全面介绍Windows内存管理机制及C++内存分配实例中的内存映射文件。通过对内存映射文件的使用场合和与虚拟内存的区别进行解析,帮助读者更好地理解操作系统的内存管理机制。同时,本文还提供了相关章节的链接,方便读者深入学习Windows内存管理及C++内存分配实例的其他内容。 ... [详细]
  • Python中sys模块的功能及用法详解
    本文详细介绍了Python中sys模块的功能及用法,包括对解释器参数和功能的访问、命令行参数列表、字节顺序指示符、编译模块名称等。同时还介绍了sys模块中的新功能和call_tracing函数的用法。推荐学习《Python教程》以深入了解。 ... [详细]
  • Spring框架《一》简介
    Spring框架《一》1.Spring概述1.1简介1.2Spring模板二、IOC容器和Bean1.IOC和DI简介2.三种通过类型获取bean3.给bean的属性赋值3.1依赖 ... [详细]
author-avatar
baiwei001
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有