【Hacker News搬运】Git吸收:Git提交-修复,但自动
-
Title: Git-absorb: Git commit –fixup, but automatic
Git吸收:Git提交-修复,但自动
Text:
Url: https://github.com/tummychow/git-absorb
很抱歉,由于我是一个人工智能模型,我无法直接访问或分析外部链接,包括GitHub上的代码库。不过,我可以根据你提供的链接信息给你一些解释。 GitHub链接 `https://github.com/tummychow/git-absorb` 指向一个名为 `git-absorb` 的项目,该项目由用户 `tummychow` 创建。通常,这样的链接指向的是一个开源的代码仓库,其中可能包含了关于如何使用Git进行某些特定操作的信息。 为了分析这个项目,你需要做以下几步: 1. **访问GitHub页面**:你可以通过上述链接直接访问这个GitHub页面。 2. **查看描述和文档**:项目的描述通常包含了项目的目的、功能和使用方法。 3. **查看代码**:通过查看仓库中的文件,你可以了解项目的具体实现和如何使用。 4. **查看issue和讨论**:项目页面通常会有一个issue跟踪器,你可以查看其他用户提出的问题和讨论。 如果你需要将项目中的内容翻译成中文,以下是一些可能的步骤: - **复制项目描述**:将项目描述复制到在线翻译工具中,如Google翻译。 - **翻译代码注释和文档**:对于代码注释和文档,可能需要使用专门的代码翻译工具或人工翻译,因为在线翻译工具可能无法准确理解编程语言中的特定术语和上下文。 - **理解项目功能**:即使内容被翻译成中文,你也需要理解Git的基本概念和命令,这样才能理解项目是如何工作的。 请记住,如果项目内容是英文的,你可能需要具备一定的英文阅读能力才能正确理解和分析它。如果你需要具体的帮助来分析这个项目,请提供更多的信息或者项目中的具体代码片段。
Post by: striking
Comments:
burntsushi: The negativity in the comments here is unwarranted in my opinion. I've been using
git absorb
for years and it works amazingly well. I use it in addition to manual fixups. My most common uses of git-absorb, but definitely not the only, are when I submit a PR with multiple commits and it fails CI for whatever reason. If fixing CI requires changes across multiple commits (say, lint violations), then git-absorb will almost always find the right commit for each change automatically. It saves the tedium of finding the right commit for each change. False positives are virtually non-existent in my experience. False negatives do happen, but then you just fall back to the manual approach.<p>It seems like some would reply and say PRs should just be one commit. Or that they will be squashed anyway. And sure, that is sometimes the case. But not always. I tend to prefer logically small commits when possible, and it's not always practical to break them up across multiple PRs. Perhaps partially due to how GitHub works.<p>I use this workflow on all of my projects on GitHub.burntsushi: 在我看来,这里的负面评论是没有根据的。我;我使用git absorb已经很多年了,它的效果非常好。除了手动修复外,我还使用它。我最常用的git absorb用法,但绝对不是唯一的用法,是当我提交了一个有多个提交的PR,但无论出于什么原因,它都失败了CI。如果修复CI需要跨多个提交进行更改(比如lint违规),那么git absorb几乎总是会自动为每个更改找到正确的提交。它省去了为每个更改找到正确提交的乏味。根据我的经验,假阳性几乎不存在。假阴性确实会发生,但随后你只能回到手动方法<p> 似乎有些人会回复说PR应该只是一个承诺。或者他们无论如何都会被压扁。当然,有时确实如此。但并非总是如此。如果可能的话,我倾向于选择逻辑上较小的提交;在多个PR之间拆分它们并不总是切实可行的。也许部分原因在于GitHub的工作方式<p> 我在GitHub上的所有项目上都使用这个工作流。
AndrewHampton: FWIW, I've been using this alias for the past couple years for fixup commits, and I've been happy with it:<p>> gfx='git commit --fixup $(git log $(git merge-base main HEAD)..HEAD --oneline| fzf| cut -d" " -f1)'<p>It shows you the commits on the current branch and lets you select one via fzf. It then creates the fixup commit based on the commit you selected.
AndrewHampton: FWW,我;在过去的几年里,我一直在使用这个别名进行修复提交,我;我对此感到满意:<p>>;gfx=;git commit--fixup$(git log$(git merge base main HEAD)。。HEAD——单线|fzf|cut-d”&“-f1)<p> 它显示了当前分支上的提交,并允许您通过fzf选择一个。然后,它会根据您选择的提交创建修复提交。
imiric: I tried using this tool after seeing recommendations for it, but IME it got the parent commit wrong enough times that the work to undo the damage was more than if I had looked up the commit myself and used
--fixup
instead. So I moved back to this manual workflow pretty quickly.<p>I prefer having full control over my commit history, and this tool is too much magic for my taste. I'm sure that it could be improved so that mistakes are rare, but I'm not sure I would trust it enough to not have to review its work anyway.imiric: 在看到这个工具的推荐后,我尝试使用它,但IME它让父级提交错误的次数足够多,因此消除损坏的工作比我自己查找提交并使用“--fixup”的情况要多。所以我很快就回到了手动工作流程<p> 我更喜欢完全控制我的提交历史,这个工具对我来说太神奇了。我;我确信它可以改进,这样错误就很少了,但我;我不确定我是否足够信任它,以至于无论如何都不必审查它的工作。
tcoff91: Just use magit and easily make fixup! commits with like 3 key presses. Even if you don't use emacs keeping it around just to use magit is worth it.<p>Edamagit for vscode users is not as good but it does this particular workflow great.
tcoff91: 只需使用魔法,轻松修复!只需按3个键即可提交。即使你不这样做;t使用emacs来保存它只是为了使用magit是值得的。<p>用于vscode用户的Edamagit没有那么好,但它对这个特定的工作流程做得很好。
taberiand: This sounds very useful, I frequently reset soft and recommit in batches of related changes before PR and this sounds like it streamlines integrating updates quite nicely
taberiand: 这听起来非常有用,我经常在PR之前重置软件并批量重新提交相关更改,这听起来很好地简化了集成更新