type
status
date
slug
summary
tags
category
icon
password
comment_flag
SLUGS

基础

remote操作

pull操作

push操作

git push命令 - Git教程 (yiibai.com)git push -u origin <本地分支名>的更多解释:
如果当前分支与多个主机存在追踪关系,则可以使用-u选项指定一个默认主机,这样后面就可以不加任何参数使用git push。不带任何参数的git push,默认只推送当前分支,这叫做simple方式。此外,还有一种matching方式,会推送所有有对应的远程分支的本地分支。

fetch操作

所取回的更新,在本地主机上要用”远程主机名/分支名”的形式读取。比如origin 主机的master 分支,就可以用origin/master 读取。

git fetch与git pull区别

参考:
git pull = git fetch + git merge
fetch同pull的区别在于:
  • git fetch:是从远程获取最新版本到本地,不会自动merge。
  • 而git pull是从远程获取最新版本并merge到本地仓库。
  • 从安全角度出发,git fetch比git pull更安全,因为我们可以先比较本地与远程的区别后,选择性的合并。
  • git push 默认推送到master,如果有多个分支,则多个分支一起推送到远程。

分支操作

进阶

从master上拉取一个新分支

当需要从master主分支上拉取一个新分支时,可以使用以下命令:

在dev分支开发时拉取master分支最新代码

在 dev 分支开发时,别人可能也在master上进行了更改,想要拉取 master 分支最新代码,可以使用以下命令:

强制拉去远程分支覆盖本地分支

git强制覆盖:
也可以写成一条执行:

git submodule添加、删除、更新

添加
更新
github 子模块多仓库代码更新:
当使用git clone下来的工程中带有submodule时,初始的时候,submodule的内容并不会自动下载下来的,此时,只需执行如下命令:
删除
 

git清除所有commits

操作:
检查:
 

删除远程仓库不存在的本地分支

git remote prune origin命令的作用是检查远程仓库(在这种情况下,是"origin"),看看哪些分支仍然存在于远程。然后,它将这个分支列表与你本地的远程跟踪分支列表进行比较。这个命令的结果是,对于在指定的远程仓库上不存在的远程分支的过时引用将被删除。
这个命令最简单的使用方式是在获取时提供它作为一个选项:$ git fetch --prune origin。在你只想进行修剪而不获取远程数据的情况下,你可以使用git remote命令:$ git remote prune origin
如果你想让每次获取操作都执行修剪,你可以相应地配置Git:$ git config --global fetch.prune true
 

合并commits操作

展开是一个摘除版本
  1. 查看log:
    1. 指定要合并版本号。假设要合并cf7e875之前的commits (且cf7e875 不参与合并):
      1. 将 commit 内容编辑如下:
          • squash表示与前一条commit合并,但是用后一条commit的log message覆盖前一条的message;
          • fixup代表与前一条commit合并,但只保留前一条commit的log message;
           
      1. 然后:wq保存退出后是注释界面:
        1. 编辑注释信息,保存退出:wq即可完成 commit 的合并:
          1. 查看合并后的log
            1. 推送到远程:
              1. 如果遇到冲突:
                1. 错误提示信息:git rebase -i resumeerror: could not apply ...
               
               
              参考:
              Git教程 (yiibai.com)大部分抄自此处。
              MacOS的一些技巧Debian11关于”grub-install error: failed to register the EFI boot entry: No space left on device.”
              Loading...