首页 > 其他分享 >Git 的使用

Git 的使用

时间:2023-04-02 22:57:19浏览次数:36  
标签:reset HEAD git 记录 Git 提交 使用 main

Git 的使用

1.提交:

git commit -m "New File"


2.新建分支:git branch newImage

切换到新的分支上:git checkout <name> ;提交:git commit

新建分支并切换到新分支:git checkout -b <name>


3.分支与合并:git merge

(bugFix 合并到main:在main指点上命令git merge bugFix)
(main合并到bugFix:git checkout bugFix;git merge main


4.合并分支二:git rebase

(bugfix合并到main:在bugFix支点上命令git rebase main


5.HEAD 移动:

(查看HEAD指向:cat ./git/HEAD
(如果HEAD指向的是引用:git symbolic-ref HEAD
(查看提交记录的哈希值:git log


6.相对引用:

1.^向上移动一个提交记录(HEAD向上移动一个git checkout HEAD^)
2.~向上移动多个提交记录(如:~3向上移动3个提交记录)
3.强制移动:git branch -f main HEAD~3(将mian强制移动到HEAD的前3次提交记录)


7.撤销变更

1.git reset
git reset 通过把分支记录回退几个提交记录来实现撤销改动。你可以将这想象成“改写历史”。
git reset 向上移动分支,原来指向的提交记录就跟从来没有提交过一样。
例如:git reset HEAD~1

(译者注:在reset后, C2 所做的变更还在,但是处于未加入暂存区状态。且对远程无用)


2.git revert

为了撤销更改并分享给别人,我们需要使用 git revert。来看演示

奇怪!在我们要撤销的提交记录后面居然多了一个新提交!这是因为新提交记录 C2' 引入了更改 —— 这些更改刚好是用来撤销 C2 这个提交的。也就是说 C2' 的状态与 C1 是相同的。


8.整理提交记录

命令:git cherry-pick <提交号>

如果你想将一些提交复制到当前所在的位置(HEAD)下面的话, Cherry-pick 是最直接的方式了。我个人非常喜欢 cherry-pick,因为它特别简单。

git cherry-pick C2 C4


9. 交互式的rebase

当你知道你所需要的提交记录(并且还知道这些提交记录的哈希值)时, 用 cherry-pick 再好不过了 —— 没有比这更简单的方式了。

但是如果你不清楚你想要的提交记录的哈希值呢? 幸好 Git 帮你想到了这一点, 我们可以利用交互式的 rebase —— 如果你想从一系列的提交记录中找到想要的记录, 这就是最好的方法了

git rebase -i HEAD~4

反悔:undo\reset


本地栈式提交

常用命令:

标签:reset,HEAD,git,记录,Git,提交,使用,main
From: https://www.cnblogs.com/EA7-King/p/17281661.html

相关文章

  • stm32------使用keil和标准外设库进行stm32工程模板创建
    keil软件版本:V5.35.00st官网:STM32固件-意法半导体STMicroelectronics单片机型号:STM32F103VET6配置步骤大致为:新建本地文件夹--->新建工程--->添加本地文件到相应工程--->打开魔术棒进行配置--->添加main文件step1:新建本地工程文件夹(这里取名为template,因后续想要做为模板使......
  • GCC使用#pragma开启O3优化
    #pragmaGCCoptimize(3,"Ofast","inline")ViewCode ......
  • Django使用数据库
    一、数据库配置使用前要设置时区TIME_ZONE,TIME_ZONE='UTC'还要注意setting.py配置文件头部的INSTALLED_APPS选项(已安装程序)。确认自建的pollsapp应用已经安装到总项目容器中了。就是添加一句话:‘pollsapp.apps.PollsappConfig’,其中pollsapp是你创建应用的名字,apps表示应......
  • 使用vue实现方法、计算属性、侦听器完成的简易计算器
    第一步:创建一个新的web项目(Jisuanqi),引入js文件第二步:搭好基本框架,为后面写代码打好基础(这里更改一个小错误:把class="app"改为id="app") 第三步:编写输入框效果图展示如下: 第四步:添加“计算”按钮第五步:编写实例化 结果显示: 最后完整代码展示1<!DOCTYPEh......
  • mybatis plus的简单使用
    mybatisplus作用就是可以少些sql,实现对数据一系列操作的功能首先查询所有数据根据指定的时间查询根据时间范围查询,时间倒序  其中QueryWrapper叫做条件构造器sql表结构,直接放到sql工具执行就好/*SQLyogUltimatev10.00Beta1MySQL-5.7.22-log:Database-y......
  • 关于Date使用不当的bug
    关于Date使用不当的bug1、背景用户调用接口,传入一个参数分钟,表示想要查询距离现在多少分钟的记录。有的时候会查不到记录。2、排查过程大致代码。获取当前的时间的date对象now,通过now的时间戳计算前beforeMinute的时间戳,转换成date对象查询executeTime>=before&&exec......
  • 04_靶机Kioptrix1.2:CMS漏洞利用,使用ht编辑器修改sudoers文件提权,mysql查询
    思路:发现主机后进行目录扫描,发现登录口标注了CMS的版本,查看该类型CMS有没有漏洞,针对漏洞去github搜索脚本,拿到脚本后运行得到靶机的初级Shell,根据靶机内的文件内容指示使用ht编辑器,利用编辑器去修改用户的权限然后提权,拿到root权限结束基操代码不再粘贴首先进行目标靶机地址的......
  • 快速使用ChatGpt Web Server
    快速使用ChatGptWebServerChatGptWebServer是使用BlazorServer模式部署的一个服务,所有的逻辑和代码执行都会在服务器执行,然后通过SignalR传输到前端渲染。通过这样模式,我们部署ChatGptWebServer只需要新加坡服务器,不需要在搭建Gateway做中间层转发,并且ChatGptWebServer......
  • 在Android应用中通过Chaquopy使用Python
    在Android应用中通过Chaquopy使用Python[译]通过Python脚本和包为Android应用带来更多的功能翻译自https://proandroiddev.com/chaquopy-using-python-in-android-apps-dd5177c9ab6b欢迎通过我的Blog访问此文章.Python在开发者社区中时最受欢迎的语言之一,因为其简单,健......
  • git
    版本管理工具区别集中式svn(subversion)分布式git原理大概是add-commit中间一个缓冲区。通过哈希值来区分每个不同的文件(blob)和文件夹(tree),其中文件夹只描述一层关系(文件名是hash的前两位,文件内容是剩余hash值),在记录不同版本时,并不是将所有文件夹复制一次又一次,在不同版本中,......