Git基础知识

一、git 查看当前分支

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

git branch

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

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

git branch --show-current

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

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

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

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

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

    git checkout -b 新分支名
    
  2. 回到原分支并重置到提交之前的状态
    然后回到之前的分支并重置到提交前的状态,这样之前的分支就不会包含你忘记切换分支时的提交。

    git checkout 原分支名
    git reset --hard 上一个合适的commit_id
    

    commit_id 可以通过 git log 找到)

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

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

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

    git stash
    
  2. 切换到新分支
    创建并切换到新分支。

    git checkout -b 新分支名
    
  3. 恢复暂存的更改
    将之前暂存的更改应用到新分支。

    git stash pop
    

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

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

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

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

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

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

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

git checkout dev

2. 拉取远程 master 分支

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

git fetch origin master

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

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

git merge origin/master

4. 解决冲突(如果有)

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

git add <file_with_conflict>
git commit

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

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

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. 查看远程分支

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

git branch -r

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

2. 创建本地 master 分支

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

git checkout -b master origin/master

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

3. 确认本地分支

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

git branch

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

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

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

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

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

    git checkout dev
    
  2. 设置 dev 分支跟踪远程的 origin/dev 分支:

    git branch --set-upstream-to=origin/dev
    

验证跟踪关系

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

git branch -vv

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

六、拉取远程分支的更新

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

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

    git checkout dev
    
  2. 拉取远程分支的更新并合并

    git pull origin dev
    

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

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

git pull

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

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

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

  1. 切换到 dev 分支

    git checkout dev
    
  2. 拉取最新的 master 分支更新

    git fetch origin master
    
  3. 合并 master 分支到 dev 分支

    git merge origin/master
    

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

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

    • Git 会提示你如果在合并过程中遇到冲突。你需要手动编辑冲突的文件,解决冲突,然后将解决后的文件标记为已解决。
    • 使用以下命令添加已解决的文件:
      git add <file>
      
    • 提交合并:
      git commit
      
  5. 推送合并后的 dev 分支到远程仓库(如果需要):

    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. 获取远程分支更新

    git fetch origin master
    

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

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

    git checkout dev
    
  3. 合并 origin/master 到你的工作分支

    git merge origin/master
    

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

九、 如何查看fetch后代码更新

要查看 git fetch 获取到的代码更新,你可以通过以下步骤进行检查。

步骤 1: git fetch

首先,使用 git fetch 命令获取远程仓库的最新提交。这一步不会更改你当前的分支,只是更新本地的远程跟踪分支。

git fetch origin

步骤 2: 查看远程分支的变更

要查看远程仓库与本地分支之间的差异,可以使用 git loggit diff

1. 使用 git log 查看更新的提交

你可以通过 git log 查看当前分支与远程分支的差异。比如你想查看 master 分支和远程 origin/master 之间的差异:

git log HEAD..origin/master

这将显示自本地 master 分支以来,远程 origin/master 上的新提交。

2. 使用 git diff 查看代码差异

如果你想查看具体代码的差异,可以使用 git diff

git diff HEAD..origin/master

这会显示你本地 master 分支与远程 origin/master 分支之间的代码差异。

步骤 3: 检查远程分支

你还可以列出远程仓库中所有分支的最新状态:

git branch -r

然后,你可以查看某个远程分支的更新:

git log origin/<branch-name>

这会列出远程 分支的所有提交记录。

十、如果查看fetch代码更新

要查看 git fetch 获取到的代码更新,你可以通过以下步骤进行检查。

步骤 1: git fetch

首先,使用 git fetch 命令获取远程仓库的最新提交。这一步不会更改你当前的分支,只是更新本地的远程跟踪分支。

git fetch origin

步骤 2: 查看远程分支的变更

要查看远程仓库与本地分支之间的差异,可以使用 git loggit diff

1. 使用 git log 查看更新的提交

你可以通过 git log 查看当前分支与远程分支的差异。比如你想查看 master 分支和远程 origin/master 之间的差异:

git log HEAD..origin/master

这将显示自本地 master 分支以来,远程 origin/master 上的新提交。

2. 使用 git diff 查看代码差异

如果你想查看具体代码的差异,可以使用 git diff

git diff HEAD..origin/master

这会显示你本地 master 分支与远程 origin/master 分支之间的代码差异。

步骤 3: 检查远程分支

你还可以列出远程仓库中所有分支的最新状态:

git branch -r

然后,你可以查看某个远程分支的更新:

git log origin/<branch-name>

这会列出远程 分支的所有提交记录。

结论

  • git fetch 后不会自动合并代码,你需要手动检查更新。
  • 使用 git log HEAD..origin/branch 查看提交记录。
  • 使用 git diff HEAD..origin/branch 查看代码改动。

在 Git 中,两个点号 .. 是一种范围运算符,用来指定两个提交之间的比较范围。它的作用是列出在一个分支或提交点上存在,而在另一个分支或提交点上不存在的提交或差异。

让我们深入理解 ..HEAD..origin/master 中的作用:

.. 的含义

两个点号 .. 用于定义一个比较的范围,表示从第一个提交(或分支)到第二个提交(或分支)之间的范围。具体来说:

  • A..B:表示比较两个提交点 AB,列出从 AB 之间的提交。
    • 只显示在 B 上有但不在 A 上的提交(即 B 相对于 A 的新增提交)。

解释 HEAD..origin/master

  • HEAD..origin/master:表示比较当前分支(HEAD 所指的提交)和远程 origin/master 分支之间的差异。
    • 它会列出HEAD 以来,在 origin/master 上新增的提交。换句话说,这些是远程分支上有,但本地分支上没有的提交。

行为示例

  1. git log HEAD..origin/master

    • 这会列出在 origin/master 分支上存在,但不在 HEAD(即你当前的本地分支)上存在的提交。通常用于查看远程仓库在你本地未同步的提交。
  2. git diff HEAD..origin/master

    • 这会显示远程 origin/master 分支与本地 HEAD 分支之间的代码差异,显示的内容是那些在远程分支上但不在本地分支上的变动。

总结

  • 两个点号 .. 的作用:比较两点之间的差异,列出在第二个点上存在但不在第一个点上的内容。它通常用于在查看远程仓库和本地分支之间的差异时,帮助开发者决定是否需要更新本地代码。

结论

  • git fetch 后不会自动合并代码,你需要手动检查更新。
  • 使用 git log HEAD..origin/branch 查看提交记录。
  • 使用 git diff HEAD..origin/branch 查看代码改动。

你可能感兴趣的:(Git,git,elasticsearch,大数据)