我如何将最后的N承诺集成到一个承诺中?
当前回答
如果您使用 TortoiseGit,您可以将函数结合到一个承诺:
打开 TortoiseGit 背景菜单 选择显示日志 标记日志视图中的相关任务 从背景菜单中选择组合到一个任务
此分類上一篇
此功能自动执行所有必要的单 git 步骤 不幸的是,仅适用于 Windows。
其他回答
在分支中,你想将承诺结合起来,运行:
git rebase -i HEAD~(n number of commits back to review)
例子:
git rebase -i HEAD~2
此将打开文本编辑器,您必须在每个承诺前更换“点击”,如果您希望这些承诺合并。
p, pick = 使用 commit
s, squash = 使用承诺,但输入前承诺
例如,如果您正在寻找将所有承诺合并到一个,则“选择”是您所做的第一个承诺,并且所有未来的承诺(位于第一个下方)都应该设置为“滑动”。如果使用vim,请使用 :x 在输入模式中保存和输出编辑器。
然后继续下调:
git add .
git rebase --continue
更多关于此和其他方式重新写下你的承诺历史,请参见这篇有用的文章
如果您想将每个承诺分成一个单一承诺(例如第一次公开发布项目时),请尝试:
git checkout --orphan <new-branch>
git commit
使用 git rebase -i <after-this-commit> 并在第二次和随后的命令中取代“squash”或“fixup”,如手册中所描述。
在此例子中, <after-this-commit> 是 SHA1 hash 或当前分支的 HEAD 的相对位置,从该分支的 Commits 被分析为 rebase 命令. 例如,如果用户希望从当前 HEAD 查看 5 个 Commits 在过去的命令是 git rebase -i HEAD~5.
我们真的很高兴这个答案,这意味着你不需要通过承诺计算。
如果你有大量的承诺在主分支,并希望将它们全部结合在一个:
确保你在主分支和做 git 状态,以确保它是所有的清洁 复制承诺 SHA 为承诺 之前你开始你的工作 git 重新设置 ‒软承诺IdSHA
[您将注意到,您此时此刻的所有更改都将显示在您的 IDE 源控制部分 - 很好地审查它们以检查它们都在那里]
git commit -am “你想要的消息将取代所有其他 commit 消息” git push (会抱怨你在承诺后面) 所以做 git push --force
这就是它!
最方便的方式是使用 GitHub 桌面. 只需在历史中选择所有命令,右键单击并选择“Squash x 命令”:
此分類上一篇
推荐文章
- Bower: ENOGIT Git未安装或不在PATH中
- Bitbucket上的Git:总是要求密码,即使上传了我的公共SSH密钥
- Git别名-多个命令和参数
- 如何添加一个“打开git-bash这里…”上下文菜单到windows资源管理器?
- 是否可以在Git中只提取一个文件?
- 当我做“git diff”的时候,我怎么能得到一个并排的diff ?
- 在git中如何将提交移动到暂存区?
- 如何缩小。git文件夹
- 如何在本地删除分支?
- 找到包含特定提交的合并提交
- Windows上Git文件的权限
- 如何从一个枝头摘到另一个枝头
- 如何获得在两次Git提交之间更改的所有文件的列表?
- 什么是跟踪分支?
- 如何在不稳定的连接上完成一个大项目的git克隆?