gpt4 book ai didi

git - `git reset --hard master` 和 `git reset --hard origin/master` 有什么区别?

转载 作者:太空狗 更新时间:2023-10-29 12:45:00 29 4
gpt4 key购买 nike

我在 Stackoverflow/elsewhere 上尝试了很多链接来正确理解

的行为

git reset --hard option

我知道:

  • 如果它被省略或者它是 origin,则在 origin 上的最近一次提交上完成重置
  • 如果提供了 SHA1 哈希,则会在相应的提交上完成重置。

我不明白的是以下值:

  1. 来源
  2. 来源/主人
  3. 起点/分支

所有似乎都有相同的行为,即它们指向 master 上的最新提交。

请解释上面提供的所有 4 个值选项的意义是什么。

我还想知道如果我在一个特定的分支上,我该如何重置到那个分支上的最后一次提交?例如,如果我在 v1.2 上,origin/v1.2 仍会将我带到 master 上的最新提交。

最佳答案

首先你需要明白分支和标签名称只是指向散列值的指针,它代表一次提交,如果你说有 4 个选项具有相同的行为,那么第一个合乎逻辑的答案是因为它们都指向同一个提交

  • origin 我不确定这一点,但我认为 origin 本身会解析为 origin/HEAD 我think 将取决于你的 github 设置,在 github 中你设置了一个“默认分支”,origin/head 将解析为 origin/[default_branch],在你的情况下我假设它是 master,所以这就是为什么它与 origin/master 具有相同的效果。

  • HEAD 始终指向当前提交,即您所在的提交,因此 git reset --hard HEAD 将永久删除跟踪中的所有更改文件和暂存文件更改,但不更改提交哈希。

  • origin/master 是自上次获取/pull 以来远程 master 分支中的最后一次提交,每次提交到 master 时,您的本地 master 已更新并且您的 origin/master 也已更新,如果其他人推送到 master 您的 repo 将不知道有更新,除非您执行 git fetch 然后你的 origin/master 将移动到你的 master 之前,或者甚至可能发散。
    运行 git reset --hard origin/master 如果你当前在 master 分支并且 master 在与 origin/master

  • 同步
  • origin/branch 我不确定这代表什么,因为默认情况下没有 origin/branch,所以我猜你创建了一个分支称为 branch 并且碰巧与你的主人在同一个提交中,以确认你可以尝试做一个 git branch 来查看你所有的分支,我猜你会找到一个名为 branch

  • 的分支

要以可视化方式查看所有这些,您可以尝试运行 git log --graph --decorate --all 或者我更喜欢像 gitk 这样的可视化工具,如果你安装了二进制文件,你将运行 gitk --all 来查看所有分支之间的相对关系

关于git - `git reset --hard master` 和 `git reset --hard origin/master` 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29862319/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com