当前位置: 首页 > news >正文

git常常用命令

这篇文章中,一些简单的,大家都知道的git 命令我就不再赘述,我只写出来最近在项目中常用到的一些命令。这些命令可以帮助我更好的开发。

git stash

请大家设想下面的场景,你的本地有两个分支,develop,fix分支,你正在develop分支上写一些需求,但是还没有写好,突然来了一个很紧急的bug,这个bug需要你切换到fix分支进行修改。此时你会怎样?是把未开发完毕的需求commit吗?还是直接变更分支?直接commit会导致本地的提交非常的乱。直接变更分支,那你未开发完毕的代码可就离你而去了……

你有更好的选择。git stash 可以帮助你先将没开发完毕的需求放到暂存区中,允许你切换到其他分支修改完毕后,切回原先的分支并恢复。这样你就可以重新开发了。

使用:

1.git stash

保存当前工作进度,会把暂存区和工作区的改动保存起来。执行完这个命令后,在运行git status命令,就会发现当前是一个干净的工作区,没有任何改动。使用git stash save 'message...'可以添加一些注释

2.git stash list

显示保存进度的列表。也就意味着,git stash命令可以多次执行。

3.git stash pop [–index] [stash]

git stash pop 恢复最新的进度到工作区。git默认会把工作区和暂存区的改动都恢复到工作区。
git stash pop --index 恢复最新的进度到工作区和暂存区。(尝试将原来暂存区的改动还恢复到暂存区)
git stash pop stash@{1}恢复指定的进度到工作区。stash_id是通过git stash list命令得到的
通过git stash pop命令恢复进度后,会删除当前进度。

4.git stash apply [-index] [stash_id]

通过git stash apply命令恢复进度后,不会删除当前进度,其余和git stash pop 一样

5.git stash drop [stash_id]

删除一个存储的进度。如果不指定stash_id,则默认删除最新的存储进度。

6.git stash clear 

清除所有存储的进度

commit后再撤销commit

当你commit修改了一些代码后,提交到本地了。后来又发现有更好的解决办法,但是此时本地已经有一版commit了,为了保证工作树的清晰,尽量不要commit两次。那么此时如何撤回之前的commit

git reset --soft HEAD^ 

这样就成功撤销了commit,如果想要连着add也撤销的话,–soft改为–hard(删除工作空间的改动代码)。

命令详解:

HEAD^ 表示上一个版本,即上一次的commit,也可以写成HEAD~1
如果进行两次的commit,想要都撤回,可以使用HEAD~2

–soft
不删除工作空间的改动代码 ,撤销commit,不撤销git add file

–hard
删除工作空间的改动代码,撤销commit且撤销add

add 后取消指定文件add

当我们不小心 git add . 将所有更新都提到仓库后,想撤销操作。

这时候可以用

git reset .

将所有add 上的东西全部取消提交,然后再提交指定文件

或者先用 git status 查看提交了哪些文件,然后 git reset + 指定文件 来撤回。

git cherry-pick 

在项目中,往往我们会有很多个分支,当我们发现多个分支中存在同样的问题时,这时候我们就可以只在一个分支上进行修改,然后利用cherry-pick 命令将指定的新提交合入另一个分支上。

git cherry-pick 提交号

利用这个命令就可以实现将指定提交合入分支的操作了。

http://www.lryc.cn/news/238594.html

相关文章:

  • C语言中的大端字节序和小端字节序是什么?如何进行字节序的转换?
  • Flutter dio Http请求之Cookie管理
  • 计算机网络的标准化工作及相关组织
  • 智能座舱架构与芯片- (11) 软件篇 上
  • 2021秋招-算法-递归
  • 【Django-02】 Model模型和模型描述对象Meta
  • 【华为OD题库-030】阿里巴巴找黄金宝箱(V)-java
  • centos7卸载mongodb数据重新安装时无法安装的问题
  • ES6 的 class 类和Typescript 的 class 类的区别
  • Android 12.0 默认授予应用权限
  • Google Earth Engine(GEE)——多源遥感变量筛选(PCA主成分分析),变量筛选/降维处理
  • 爬虫的http和https基础
  • 读像火箭科学家一样思考笔记05_思想实验
  • mac gitee新建工程遇到的一些问题
  • 某60区块链安全之Call函数簇滥用实战一学习记录
  • 最新AIGC创作系统ChatGPT系统源码,支持最新GPT-4-Turbo模型,支持DALL-E3文生图,图片对话理解功能
  • openssl+ SM2 + linux 签名开发实例(C++)
  • U4_1:图论之DFS/BFS/TS/Scc
  • STM32框架之按键扫描新思路
  • 完美解决k8s master节点无法ping node节点中的IP或Service NodePort的IP
  • 弗洛伊德算法(C++)
  • 相对定位、绝对定位、固定定位、绝对定位堆叠顺序
  • px4+vio实现无人机室内定位
  • 享元模式 rust和java的实现
  • XmlElement注解在Java的数组属性上,以产生多个相同的XML元素
  • SQLServer 数字加千分位 用FORMAT函数强转不管多大位数
  • 说说mvc和mvvm的区别和联系
  • linux rsyslog综合实战2
  • AcWing 4. 多重背包问题 I 学习笔记
  • 解决selenium使用chrome下载文件(如pdf)时,反而打开浏览器的预览界面