跳至主要內容
git 拉取远程分支到本地

1,查看远程分支

可以查看远程分支名,查看要切换的远程分支是否存在。

git branch -a

2, 查看本地分支

查看本地是否已经有了要切换的分支,如果有,可以直接git checkout 分支名来切换分支。


ChenSino小于 1 分钟git 操作必会
git分支操作

一,推送本地分支到远程

昨天我在自家电脑创建了一个分支search_dev.写搜索功能。

1,在本地创建并切换到search_dev分支

git checkout -b search_dev

ChenSino大约 2 分钟git 操作必会
git rebase与merge的区别

在codehub上有多个分支,每次的提交都会生成一个新的ID。如下图,假设开始各个分支都是根据ID2的提交更新后的代码进行修改,(ID号仅代表生成的时间顺序,实际的ID号是根据算法生成的)

img

如果我们需要将绿色分支修改的代码更新到蓝色分支,本地远程分支内与个人工作分支已经是蓝色分支对应库内最新代码,那么在绿色远程分支代码更新到个人的库后(fetch),需要将本地远程分支代码更新到个人工作分支,这时有两种方法,rebase和merge。


ChenSino大约 1 分钟git 操作必会
git命令

一、善用手册

$ git --help
用法:git [--version] [--help] [-C <路径>] [-c <名称>=<取值>]
           [--exec-path[=<路径>]] [--html-path] [--man-path] [--info-path]
           [-p | --paginate | -P | --no-pager] [--no-replace-objects] [--bare]
           [--git-dir=<路径>] [--work-tree=<路径>] [--namespace=<名称>]
           [--super-prefix=<路径>] [--config-env=<名称>=<环境变量>]
           <命令> [<参数>]

这些是各种场合常见的 Git 命令:

开始一个工作区(参见:git help tutorial)
   clone     克隆仓库到一个新目录
   init      创建一个空的 Git 仓库或重新初始化一个已存在的仓库

在当前变更上工作(参见:git help everyday)
   add       添加文件内容至索引
   mv        移动或重命名一个文件、目录或符号链接
   restore   恢复工作区文件
   rm        从工作区和索引中删除文件

检查历史和状态(参见:git help revisions)
   bisect    通过二分查找定位引入 bug 的提交
   diff      显示提交之间、提交和工作区之间等的差异
   grep      输出和模式匹配的行
   log       显示提交日志
   show      显示各种类型的对象
   status    显示工作区状态

扩展、标记和调校您的历史记录
   branch    列出、创建或删除分支
   commit    记录变更到仓库
   merge     合并两个或更多开发历史
   rebase    在另一个分支上重新应用提交
   reset     重置当前 HEAD 到指定状态
   switch    切换分支
   tag       创建、列出、删除或校验一个 GPG 签名的标签对象

协同(参见:git help workflows)
   fetch     从另外一个仓库下载对象和引用
   pull      获取并整合另外的仓库或一个本地分支
   push      更新远程引用和相关的对象

命令 'git help -a''git help -g' 显示可用的子命令和一些概念帮助。
查看 'git help <命令>''git help <概念>' 以获取给定子命令或概念的
帮助。
有关系统的概述,查看 'git help git'

ChenSino大约 12 分钟git 操作必会
Git克隆出现连接错误

如何解决 fatal: unable to access...的问题

现象

浏览器可正常访问github,终端无法clone

确定是否是因为代理问题

## 查看git所有配置,检查是否使用了代理
git config --list

zxf小于 1 分钟git 操作必会
git冲突出现的原因

一,git冲突出现的原因及解决方案

简单来说就是本地修改的文件和目标远程库的同一个文件都有修改,这时无论是pull,push,merge时都会产生冲突。

1.1 本地代码没有commit. 修改同一文件的不同处,依旧会产生冲突。

  • 修改component.html本地文件第11行,既没有add,也没有commit
  • 然后修改远程component.html远程文件第14行
  • 本地执行git pull,拉取代码提示,同时修改component.html,提示发生冲突

zxf大约 3 分钟git 操作必会
git rebase的使用

一,用于合并当前分支的多个commit记录

应用场景,如下第2-4次提交是对同一功能的代码提交记录,完全可以合并成一次提交记录。这个时候rebase就很有用了。

image-20220724180044950

  1. 找到想要合并的commit, 使用rebase -i

    git rebase -i bd0d758(第一次提交的commitId)
    

    注意 git rebase -i [startPonit] [endPoint]

    前开后闭 区间 这里的 [startPonit] 是指需要合并的commit的前一个commit (即当前示例中的 “bd0d758: 第一次提交”)。 因为, 三个commit肯定要基于上一个commit合并成了新的commit。 谨慎使用[endPoint] 省略, 即默认表示从起始commit一直到最后一个,但是一旦你填写了, 则表示 [endPoint]后面的commit全部不要了!


zxf大约 3 分钟git 操作必会
git工作区、暂存区、和版本库

一,基本概念

  • 工作区:就是你在电脑里能看到的目录。
  • 暂存区:英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
  • 版本库:工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库。

下面这个图展示了工作区、版本库中的暂存区和版本库之间的关系:

image-20220803144042656


zxf大约 2 分钟git 操作必会
git pull产生临时Merge branch的问题

一,问题

​ 在git log中往往会发现在log中出现Merge branch 'master of .....'这种合并节点,造成日志的污染

image-20220726115529360

二,产生的原因

当多人合作开发一个项目时,本地仓库落后于远程仓库是一个非常正常的事情,可参考下图 在这里插入图片描述


ChenSino大约 3 分钟git 操作必会