Sublime Merge目录

  • 初始应用
    • 目录
  • Git - 暂存列表(stashes)
    • 常用命令
      • 存储当前的修改,但不提交commit
      • 存储当前的修改,但不提交commit, 并指定标识信息
      • 查看stash内容
      • 回到某个stash的状态, 如果没有指定参数,将回到最近stash的状态
      • 从指定的stash创建一个新分支,如果没有指定stash,默认为最近的stash
      • 删除指定的stash, 如果没有指定stash,默认为最近的stash
      • 执行 rebase 之前自动 stash
  • 什么是 rebase?
    • git rebase 和 git merge 有啥区别?
    • 注意:
  • Git Submodules 子模块
  • Git常用命令
    • 把远程分支拉到本地
    • 查看本地分支
    • 查看远程分支
    • 查看所有分支
    • pull下所有分支
  • git fetch & pull详解

初始应用


Local Repositories 本地存储库
Open Repository 打开存储库
New Repository 新建存储库
Clone Repository 克隆存储库
Source URL 源URL
Repository Name 存储库名称
Destination Path 目标路径

目录


BRANCHES 分支
REMOTES 远程仓库
TAGS 标签
STASHES 暂存列表
SUBMODULES 子模块

Git - 暂存列表(stashes)

通过Stashes(暂存列表)可以临时地保存一些还没有提交的工作,以便在分支上不需要提交未完成工作,就可以清理工作目录。

换而言之, 就是将当前的更改临时搁置起来,在需要的时候,可以返回先前的工作目录状态。
默认情况下,仅储藏当前跟踪文件中的更改,新文件将被忽略。

可以独立地创建和应用多个stash。

常用命令

  • 执行git stash可以将手当前工作目录状态临时保存,可以执行git stash applygit stash pop可以恢复保存的工作目录状态。
  • 执行git stash后,git status将显示无任何改动,但可以通过git stash list查看保存的stash。
git stash  # Temporarily stores all modified tracked files
git stash list  # Lists all stashed changesets
​
git stash pop <stash> # Restores the stashed files, and delete the stashed files
git stash apply <stash> # Restores the stashed files, and reserve the stashed files
git stash clear  # Remove all the stashed states

存储当前的修改,但不提交commit

git stash

  • -u或者--include-untracked参数,可以stash untracked文件
  • -a或者--all参数,可以stash当前目录下的所有修改
  • -p或者--patch参数,可以交互式stash当前目录下的指定修改
  • 无参数,默认存储当前已跟踪的修改

存储当前的修改,但不提交commit, 并指定标识信息

git stash save <message>

查看stash内容

git stash show

  • 无参数, 默认查看最新的stash和最新提交的diff结果
  • <stash@{n}>参数, 查看指定stash和最新提交的diff结果
  • -p <stash@{n}>参数, 查看指定stash和最新提交的diff结果, 已git diff方式显示

回到某个stash的状态, 如果没有指定参数,将回到最近stash的状态

git stash apply/pop <stash@{n}>

  • apply方式,将指定的stash应用到当前工作目录,对应的stash仍保留在stashes(暂存列表
  • pop方式,将指定的stash应用到当前工作目录,并删除对应的stash

从指定的stash创建一个新分支,如果没有指定stash,默认为最近的stash

git stash branch <branch-name> <stash@{n}>

删除指定的stash, 如果没有指定stash,默认为最近的stash

git stash drop <stash@{n}>

执行 rebase 之前自动 stash

git rebase --autostash

什么是 rebase?

git rebase 你其实可以把它理解成是“重新设置基线”,将你的当前分支重新设置开始点。这个时候才能知道你当前分支于你需要比较的分支之间的差异。

原理很简单:rebase需要基于一个分支来设置你当前的分支的基线,这基线就是当前分支的开始时间轴向后移动到最新的跟踪分支的最后面,这样你的当前分支就是最新的跟踪分支。

这里的操作是基于文件事务处理的,所以你不用怕中间失败会影响文件的一致性。在中间的过程中你可以随时取消rebase 事务。

git rebase 和 git merge 有啥区别?

rebase会把你当前分支的 commit 放到公共分支的最后面,所以叫变基。

就好像你从公共分支又重新拉出来这个分支一样。

举例:如果你从 master 拉了个feature分支出来,然后你提交了几个 commit,

这个时候刚好有人把他开发的东西合并到 master 了,这个时候 master 就比你拉分支的时候多了几个 commit,

如果这个时候你 rebase master 的话,就会把你当前的几个 commit,放到那个人 commit 的后面。


merge 会把公共分支和你当前的commit 合并在一起,形成一个新的 commit 提交

注意:

不要在公共分支使用rebase
本地和远端对应同一条分支,优先使用rebase,而不是merge

为什么不要再公共分支使用rebase?

因为往后放的这些 commit 都是新的,这样其他从这个公共分支拉出去的人,都需要再 rebase,相当于你 rebase 东西进来,就都是新的 commit 了。

Git Submodules 子模块

参考文献:http://www.ayqy.net/blog/%E7%90%86%E8%A7%A3git-submodules/

Git常用命令

把远程分支拉到本地

git fetch origin dev(dev为远程仓库的分支名)

把某个分支上的内容都拉取到本地

git pull origin dev(远程分支名称)

查看本地分支

git branch

查看远程分支

git branch -r

查看所有分支

git branch -a

pull下所有分支

git pull -a

git fetch & pull详解

先用一张图来理一下git fetchgit pull的概念:


可以简单的概括为:

git fetch是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。

git pull 则是将远程主机的最新内容拉下来后直接合并,即:git pull = git fetch + git merge,这样可能会产生冲突,需要手动解决。

Sublime Merge相关推荐

  1. Sublime Merge Stage时提示系统找不到指定的文件

    使用git提交代码之前首先要stage,但是最近用了个新软件,Sublime Merge,功能一般般,但是速度确实很快. 但是在stage的时候就出现了系统找不到指定的文件错误. 解决办法: Pref ...

  2. Sublime Merge中文版

    教程: 1.下载解压,双击运行exe后缀文件开始安装: 2.更改安装路径: 3.一切准备就绪,开始安装: 4.安装成功:资源地址:Sublime Merge中文版 5.将[Cracr]文件中的复制替换 ...

  3. Sublime Merge 简单使用

    Sublime Merge是 git 可视化工具,就是把git命令变成图形化的了,看起来更方便,也不用敲命令 Sublime Merge 官方地址 https://www.sublimemerge.c ...

  4. Sublime Merge——一款超好用的Git可视化工具

    写在最前:使用本工具之前最好配置一下git的免密登录,方法可以参考下面的链接. git生成ssh-key,实现免密码登录github 一.安装工具 安装包可以自行百度,或者下载本文最后提供的安装包. ...

  5. Sublime merge汉化教程(亲测可用)

    前言 在用sublime text的时候,去官网看了看,诶?sublime家族有一个git GUI哦?我怎么不知道,然后就下载来用了,结果一打开来 我裂开来,忘了这是外国软件了,然后上网找了找汉化版, ...

  6. Sublime Text3 安装sublime_merge 以及sublimerge插件

    [摘要] sublime_merge的安装 首先,Sublime Text很好用,特别是3之后的版本. 其次,我也是百度找的绿色版本,不过好像我执行的是exe的文件安装的.安装插件的那个还是跟官网下载 ...

  7. SurfaceGo使用体验(使用半年后)

    文章目录 写在前面 Surface Go 能干什么 编程环境 Python LaTeX C/C++ git Subsystem WSL 学习 娱乐 续航 内存 性能 其他小技巧 小结 写在前面 使用S ...

  8. git 客户端_适用于Mac的10个最佳GUI Git客户端

    今天准备下载微信小程序的代码,一直开发安卓,用的都是Android studio 自带的GIT管理工具,平时也没有发现自己还没有GIT管理工具,于是乎就要去找一款逞心如意的管理工具了,收集了几款管理工 ...

  9. Mac (M1) 软件及环境搭建

    Mac (M1) 软件及环境搭建 1.JDK 2.maven 3.idea2022 4.git 5.mysql5.7 6.redis 7.rabbitmq 8.smartGit 写在前面 说明:电脑版 ...

最新文章

  1. 不用中间变量交换两个变量的值
  2. progress与meter的区别
  3. 微机原理实验1:字符串匹配程序实验
  4. 每天学点Linux命令:倒叙打印文件第二行的前100个大写字母
  5. 成年人不懂这些道理,会吃很多亏
  6. 国际上首次报道的非人灵长类胰岛衰老的单细胞转录组图谱
  7. python编辑器_资深程序员:学Python我推荐你用这几款编辑器
  8. PAT乙级(1003 我要通过!)
  9. azure备份存储层分类_备份到Azure –如何做到这一点?
  10. 去掉高德api上的logo图标
  11. 如何测量三角形的斜边长度?
  12. 2020年31省市GDP数据可视化
  13. sap 双计量单位_SAP 基本计量单位更改(转载)
  14. 模拟器怎么安装xposed框架
  15. 有效管理“刺头”员工的方法
  16. Palantir的研究到金融风控(二)
  17. 【深度学习】BioBERT文章翻译及个人感悟
  18. 机器学习最常用的3种激活函数:Sigmoid、Tanh、Relu
  19. 问题 F: 小白鼠排队
  20. matlab 通讯系统设计与仿真,基于BPSK通信系统的设计与仿真

热门文章

  1. 【云周刊】第175期:终于来了!重磅发布:阿里云负载均衡SLB率先支持IPv6!
  2. 运算放大器-同相放大器
  3. JavaScript 设计模式----设计模式初识
  4. Java上传图片到本地
  5. java反射的原理,作用
  6. 月薪3000与月薪30000的文案区别!
  7. FPGA与DSP之间的EMIF接口调试
  8. 【报告分享】2020当代年轻人消费数据报告-新浪时尚得物(附下载)
  9. Lambda表达式(三更草堂)
  10. 关于计算点到线段的距离