Git基础知识

一、git 查看当前分支

你可以使用以下命令来查看当前所在的 Git 分支:

bash 复制代码
git branch

输出中带有 * 符号的分支就是当前所在的分支。

如果只想显示当前分支的名称,可以使用:

bash 复制代码
git branch --show-current

二、开发过程中,忘记切换分支,有什么办法当前开发的内容移动新的分支中?

如果你在开发过程中忘记切换分支,但已经进行了一些提交或有一些未提交的更改,不用担心,你可以将这些更改移动到新的分支。具体步骤如下:

方法 1: 已经提交代码的情况

如果你已经提交了代码,但忘记切换分支,可以使用以下步骤将提交移动到新分支:

  1. 创建并切换到新分支

    你可以在当前分支的基础上创建一个新分支,并把提交移动到新分支上。

    bash 复制代码
    git checkout -b 新分支名
  2. 回到原分支并重置到提交之前的状态

    然后回到之前的分支并重置到提交前的状态,这样之前的分支就不会包含你忘记切换分支时的提交。

    bash 复制代码
    git checkout 原分支名
    git reset --hard 上一个合适的commit_id

    commit_id 可以通过 git log 找到)

方法 2: 未提交代码的情况

如果你还没有提交代码,但已经有了本地更改,可以使用以下步骤:

  1. 暂存更改

    你可以将所有未提交的更改暂存,切换到新分支,再将更改应用到新分支。

    bash 复制代码
    git stash
  2. 切换到新分支

    创建并切换到新分支。

    bash 复制代码
    git checkout -b 新分支名
  3. 恢复暂存的更改

    将之前暂存的更改应用到新分支。

    bash 复制代码
    git stash pop

之后,你就可以继续在新的分支上开发了。

方法 3: 结合提交和未提交的情况

如果你既有未提交的更改,又有提交了的内容,可以将未提交的部分 stash 暂存,然后根据方法 1将已提交的部分移动到新分支。

三、拉取远程master分支,合并到当前dev分支

要从远程的 master 分支拉取最新的更改并合并到你当前的 dev 分支,按以下步骤操作:

1. 确保你当前位于 dev 分支

首先,你需要确认自己在 dev 分支上。如果你不在 dev 分支,可以用以下命令切换:

bash 复制代码
git checkout dev

2. 拉取远程 master 分支

然后,从远程仓库中拉取 master 分支的最新代码:

bash 复制代码
git fetch origin master

3. 合并 master 分支到当前的 dev 分支

接下来,合并远程的 master 分支到当前的 dev 分支:

bash 复制代码
git merge origin/master

4. 解决冲突(如果有)

如果合并过程中产生了冲突,Git 会提示你手动解决冲突。你可以打开冲突文件,手动修改冲突部分,然后添加修改并完成合并:

bash 复制代码
git add <file_with_conflict>
git commit

5. 推送到远程 dev 分支(可选)

合并完成后,你可以将 dev 分支推送到远程仓库:

bash 复制代码
git push origin dev

这样你就完成了从远程 master 分支拉取并合并到 dev 分支的操作。

四、git fetch origin master 后, git branch没有显示master

在执行 git fetch origin master 后,如果 git branch 没有显示 master 分支,可能是因为 master 分支还没有被创建为本地分支。git fetch 只拉取了远程的 master 分支更新,但不会在本地自动创建该分支。

你可以通过以下方式查看远程分支,并创建本地的 master 分支:

1. 查看远程分支

使用以下命令查看所有远程分支:

bash 复制代码
git branch -r

你应该能看到类似 origin/master 的分支,表示远程仓库中存在 master 分支。

2. 创建本地 master 分支

如果你需要在本地创建并切换到 master 分支,可以执行:

bash 复制代码
git checkout -b master origin/master

这会在本地创建一个名为 master 的分支,并将它设置为跟踪远程的 origin/master

3. 确认本地分支

执行以下命令来确认本地分支是否显示 master

bash 复制代码
git branch

这样,你就可以看到本地的 master 分支了。

五、将本地已经创建的dev分支设置为跟踪远程dev分支

要将本地的 dev 分支设置为跟踪远程的 dev 分支,可以使用 git branch --set-upstream-to 命令:

设置本地 dev 分支跟踪远程 dev 分支

  1. 确保当前切换到 dev 分支:

    bash 复制代码
    git checkout dev
  2. 设置 dev 分支跟踪远程的 origin/dev 分支:

    bash 复制代码
    git branch --set-upstream-to=origin/dev

验证跟踪关系

设置完成后,你可以通过以下命令验证本地分支的跟踪状态:

bash 复制代码
git branch -vv

它会显示当前分支跟踪的远程分支。

六、拉取远程分支的更新

要拉取远程分支的更新并合并到当前分支,可以使用以下命令:

  1. 确保切换到要拉取更新的分支

    bash 复制代码
    git checkout dev
  2. 拉取远程分支的更新并合并

    bash 复制代码
    git pull origin dev

这会从远程仓库的 origin/dev 分支拉取更新并自动合并到你本地的 dev 分支。

如果你已经设置了分支的跟踪关系(如之前的 git branch --set-upstream-to=origin/dev),你也可以简单地运行:

bash 复制代码
git pull

这将拉取并合并当前分支跟踪的远程分支的最新更改。

七、将master分支更新内容合并到dev分支

要将 master 分支的更新内容合并到 dev 分支,你可以按照以下步骤操作:

  1. 切换到 dev 分支

    bash 复制代码
    git checkout dev
  2. 拉取最新的 master 分支更新

    bash 复制代码
    git fetch origin master
  3. 合并 master 分支到 dev 分支

    bash 复制代码
    git merge origin/master

    这会将 origin/master 分支的最新更改合并到你当前的 dev 分支中。

  4. 解决任何合并冲突(如果有的话):

    • Git 会提示你如果在合并过程中遇到冲突。你需要手动编辑冲突的文件,解决冲突,然后将解决后的文件标记为已解决。

    • 使用以下命令添加已解决的文件:

      bash 复制代码
      git add <file>
    • 提交合并:

      bash 复制代码
      git commit
  5. 推送合并后的 dev 分支到远程仓库(如果需要):

    bash 复制代码
    git push origin dev

这些步骤将确保你的 dev 分支包含了 master 分支的最新更改,并在需要时解决任何合并冲突。

八、git fetch origin master 将拉取的内容保存到哪个分支上了?

使用 git fetch origin master 命令会从远程仓库拉取 master 分支的最新更新,并将这些更新保存在本地的 origin/master 分支上。origin/master 是远程 master 分支的本地跟踪分支。

这不会自动合并到当前分支 。你需要执行额外的操作来将这些更新合并到你当前的工作分支。具体来说,git fetch 操作只会更新远程跟踪分支,而不会更改你的本地分支。

如果你想将 origin/master 的更改合并到你当前的分支(比如 dev),你需要在执行 git fetch 后执行合并操作。以下是完整的流程:

  1. 获取远程分支更新

    bash 复制代码
    git fetch origin master

    这将把远程 master 分支的最新内容下载到 origin/master

  2. 切换到你的工作分支 (例如 dev):

    bash 复制代码
    git checkout dev
  3. 合并 origin/master 到你的工作分支

    bash 复制代码
    git merge origin/master

    这样,你就将远程 master 分支的更新内容合并到了你的 dev 分支上。

相关推荐
贩卖纯净水.4 小时前
白月光git
git·github
Lill_bin5 小时前
深入理解ElasticSearch集群:架构、高可用性与数据一致性
大数据·分布式·elasticsearch·搜索引擎·zookeeper·架构·全文检索
涛思数据(TDengine)5 小时前
TDengine 与 SCADA 强强联合:提升工业数据管理的效率与精准
大数据·时序数据库·tdengine
isNotNullX6 小时前
如何用SQL Server和Oracle进行数据同步?
大数据·数据库·sql·oracle
RwTo7 小时前
Elasticsearch 聚合搜索
大数据·elasticsearch·搜索引擎·全文检索
isNotNullX7 小时前
HBase在大数据实时处理中的角色
大数据·数据库·hbase
白总Server7 小时前
MySQL在大数据场景应用
大数据·开发语言·数据库·后端·mysql·golang·php
求学小火龙8 小时前
ElasticSearch介绍+使用
java·大数据·elasticsearch
檀越剑指大厂8 小时前
【Elasticsearch系列六】系统命令API
大数据·elasticsearch·搜索引擎
爱吃瓜的猹z8 小时前
git reset 几点疑问
git·源代码管理