【问题标题】:Git: Overwrite file changes with "git checkout" before mergeGit:在合并之前用“git checkout”覆盖文件更改
【发布时间】:2021-10-11 06:07:29
【问题描述】:

问题:

origin/branch_y 合并到origin/master 时,在使用git checkout origin/master file_x 覆盖branch_y 上的file_x 并将file_x 推送到origin/branch_y 后,file_x 仍然与origin/master 上的版本不同,并且列在更改下。

问题:

此时 file_x 不应该,至少在内容方面,在两个分支上都完全相同吗?

全文:

比较分支sac_sb3master,在发出新的合并请求时,我注意到我无意中将文件env.pyutils.py 的更改推送到分支sac_sb3 - 这两个文件都应该保持不变.

分支代表了数周的工作,它包含许多提交,并且图表的清洁度在给定的工作环境中并不是最重要的。我推断最快的解决方案是用远程主机的文件状态覆盖文件。因此,按照这个 StackOverflow post,我跑了:


git checkout sac_sb3

git checkout origin/master rlmodel/sb3/utils.py

git checkout origin/master rlmodel/sb3/env.py

git add -u

git commit -m "restore env.py and utils.py with versions from origin/master"

git push

但是,当我现在重新初始化 origin/sac_sb3origin/master 之间的合并请求时,env.pyutils.py 仍然列在更改下,甚至在内容方面与 origin/master 上的版本不同。

【问题讨论】:

  • 会不会是autoclrf?只是在黑暗中刺伤。 Relevant question
  • 我不确定我是否正确理解autoclrf 。但我所有的工作都是在 Linux 上完成的——所以不应该应用任何样式转换。此外,这些文件实际上在上下文方面有所不同,而不仅仅是在格式方面。
  • 你有没有在其他六个命令之前运行git fetch,以便根据originmaster更新你本地的origin/master?如果不是,那可能就是问题所在。您现有的git checkout 命令是正确的,但您将从origin/master 转换为git checkout 命令时的任何提交哈希ID 中获取文件,这不一定是正确的。事实上,即使在git fetch 之后,它也可能已经过时,这取决于origin 的变化速度,但fetching 是你能做的最好的。
  • 好点!但是,我最初运行的是:git checkout master-> git fetch --all -> git pull -> git checkout sac_sb3 -> git checkout master rlmodel/sb3/utils.py -> git checkout master rlmodel/sb3/env.py -> git add -u -> git commit -m "restore env.py and utils.py with versions from origin/master" -> git push。我在我的问题中只使用了origin/master 来缩写这个过程。所以,无论如何,我确实事先运行了git fetch -all

标签: git github gitlab


【解决方案1】:

在指定路径时,最好用-- 分隔它们以防止歧义。试试:

git checkout origin/master -- rlmodel/sb3/{utils,env}.py

您可以在man page 的顶部找到指定选项、提交、哈希和路径规范的所有不同方式。

【讨论】:

  • 感谢您的意见。我会采纳你的建议以获得更好的风格,而不是利用 git 语法的放松。但是,由于我没有任何名为 rlmodel/sb3/utils.pyrlmodel/sb3/env.py 的分支,因此该命令将在没有 -- 的情况下工作 - 我也对此进行了测试。参考:stackoverflow.com/a/41102120/11918697
猜你喜欢
  • 2012-12-25
  • 1970-01-01
  • 2014-10-03
  • 1970-01-01
  • 1970-01-01
  • 2012-03-20
  • 2013-08-31
  • 2015-10-01
  • 2021-12-24
相关资源
最近更新 更多