忽略 `git log` 中的 git-svn 文件

发布于 2024-10-19 14:54:26 字数 459 浏览 4 评论 0原文

有没有办法忽略 git-svn 更新?我通常的工作流程:

  • 在我的 dev git 分支中执行操作,
  • 上检查我的 master
  • git svn rebase
  • dev< 的 master cherry-pick /code>
  • git svn dcommit
  • 再次签出 dev
  • git merge master

唯一的问题是,在我 git merge master 之后,我做 git log -n ###,我也得到了所有 git-svn 更新。我可以将其限制为最新的 git 提交吗?

Is there a way to ignore git-svn updates? my usual workflow:

  • doing stuff in my dev git branch
  • checking out my master
  • git svn rebase on master
  • cherry-pick from dev
  • git svn dcommit
  • checkout dev again
  • git merge master

the only problem with this is that after i git merge master, i do git log -n ###, and i get all the git-svn updates as well. Can i limit it just the latest git commits?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

小草泠泠 2024-10-26 14:54:27

不,如果没有 git-svn 提交,你就无法将 master 合并回 dev 分支。

问题是,当您执行 git svn dcommit 时,您实际上重写您从 dev 分支中精心挑选的提交。 git-svn 提交现在已经成为你历史的一部分,试图以某种方式摆脱它们是愚蠢的。如果我猜对了,您的开发分支充满了合并提交,其中您的 git-svn 提交与您的开发提交重新加入,因为它们已经分歧。这很混乱。

话虽如此,我也不确定您的工作流程是否最佳。也许你应该尝试这个:

  1. 在 master上的 dev 分支中工作
  2. git svn rebase 以获得最新的 svn 更改
  3. 现在在你的工作下重新设置这些最新的更改: dev 中的 git rebase master
  4. 现在将您的更改快进回 master: master 上的 git merge dev
  5. git svn master 上的 dcommit
  6. 现在删除 dev 分支。保留它没有什么意义,因为提交现在已被 dcommit 重写。 git Branch -d dev
  7. git checkout -b dev 获取下一个功能/修复。

No, you can't merge master back into the dev-branch without getting the git-svn commits along for the ride.

The thing is that when you do a git svn dcommit, you actually rewrite the commits that you've cherry-picked from the dev branch. The git-svn commits are now part of your history, and it would be folly to try to get rid of them some how. If I'm guessing correctly, your dev branch is full of merge commits where your git-svn commits are re-joined with your dev-commits because they have diverged. This is messy.

That being said, I'm also unsure if your workflow is optimal. Maybe you should try this:

  1. work work work in the dev branch
  2. git svn rebase on master for the lastest svn changes
  3. Now rebase these latest changes in under your work: git rebase master in dev
  4. Now fast-forward your changes back to master: git merge dev on master
  5. git svn dcommit on master
  6. Now remove the dev branch. Little sense in keeping it since the commits have now been rewritten by dcommit. git branch -d dev
  7. git checkout -b dev for the next feature/fix.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文