【问题标题】:Splitting changes into 2 commits for git将更改拆分为 git 的 2 个提交
【发布时间】:2022-06-23 22:38:08
【问题描述】:

我在 git 上有一个 master 分支。在 Eclipse 上使用 EGit,我已经在本地 repo 上下载,并对许多文件进行了一些更改。

管理层希望我将更改拆分为 2 个独立的提交,一个接一个。我这样做的步骤是什么?如何在本地制作/克隆两个版本并拆分它们?

我在同一个文件中也有一些更改需要拆分为两个提交。我怎样才能做到这一点?我听说有一种叫做 git stash 的东西,但这会帮助我处理一个又一个的提交吗?

我是 git 新手,所以请用简单的英语解释,最好是分解步骤。非常感谢。赞赏!

【问题讨论】:

  • 这能回答你的问题吗? How do I undo the most recent local commits in Git? - 然后在每次提交之前只添加你想要的更改。
  • 关于拆分现有提交,请查看:split commit 要拆分您当前的工作,请查看interactive staging
  • 这个问题“如何在本地制作/克隆两个版本并拆分它们?”断章取义并造成混淆,请查看此内容、删除或扩展更多信息。
  • 我同意@ClaudioWeiler - 整个句子可能可以完全删除。
  • 我同意@evolutionxbox 对此副本的看法。特别注意接受的答案,步骤#2“[根据需要编辑文件]”是您将如何处理对需要在2次提交中的单个文件的更改。您将在第一次提交时提取这些更改,并在第二次提交时将它们放回原处。或者,如果您有很多更改要拆分,请查看how to stage hunks

标签: git eclipse git-commit egit


【解决方案1】:

您缺乏所有 git 基本概念,我的第一个建议是获取一些基本教程并尝试。这里有一个来自 git docs:https://git-scm.com/docs/gittutorial.

使用备忘单总是好的。看到这个https://www.atlassian.com/git/tutorials/atlassian-git-cheatsheet

现在,对于您的问题:

管理层希望我将更改拆分为 2 个独立的提交

提交总是独立的,所以:

  1. 做一些工作
  2. 将该作品添加到暂存区
    git add <file_name>
  3. 并提交
    git commit -m "commit comment"

我在同一个文件中也有一些更改需要拆分为两个提交。我怎样才能做到这一点?我听说有一种叫做 git stash 的东西,但这会帮助我一次又一次地进行提交吗?

这个比较棘手。这将取决于您所做的更改类型以及您的文件是否被跟踪,但我会选择:

  1. 获取更改文件的差异
    git diff <file_name> > <file_name>_changeset_1.diff
  2. 复制差异文件
    cp <file_name>_changeset_1.diff <file_name>_changeset_2.diff
  3. 编辑两个差异文件,并只保留每个文件所需的更改
  4. 应用变更集 1
    git apply <file_name>_changeset_1.diff
  5. 提交
    git commit -m "commit comment"
  6. 应用变更集 2
    git apply <file_name>_changeset_2.diff
  7. 提交
    git commit -m "commit comment"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-07-21
    • 2011-06-24
    • 1970-01-01
    • 2018-07-17
    • 2013-10-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多