【发布时间】:2021-12-27 13:56:53
【问题描述】:
我不确定这种策略是否给我们带来了比其价值更多的问题。让我们以此为例(来自 git docs)。
A---B---C---D---E origin/master
\
X---Y--- feature/branch
我在提交 B 中创建了一个源/主的功能/分支。我在本地提交了 X 和 Y。 C、D 和 E 已由其他开发者承诺起源。然后我使用 git pull origin master 将最新的更改从 master 下拉到我的功能/分支中。
A---B---C---D---E origin/master
\ \
X---Y--------M feature/branch
这似乎采用 CDE 并在我的功能分支 M 中创建合并提交。然后我压缩我的功能分支创建提交 Z 并将其推送到原点。
A---B---C---D---E origin/master
\ \ /
X---Y--------M---Z feature/branch
我可能误解了pull merge。
origin 现在是否包含 A、B、C 两次?
我们应该改用 rebase 吗?
非常感谢任何建议。
【问题讨论】:
-
你没有“功能分支”。您正在直接在 master 上工作。
-
“壁球”对您意味着什么?显示您获得
I的命令以及您“将其推入原点”的命令。事实上,如果你显示所有的命令会有所帮助。 -
"origin 现在是否包含 A,B,C 两次?"你怎么能怀疑。只需
git fetch自己看看。 -
最后:问题是什么?您的个人误解似乎很深,您的工作习惯有点好奇,但除此之外,这里并没有发生什么特别有趣或令人惊讶的事情。
-
Matt,你说得对,我在这个例子中拉下了 master 并直接提交到它,但是我提到它就像一个特性分支。很抱歉造成混乱。 Squash 命令 -
git merge --squash谢谢,我会尝试 git fetch 看看它是什么样子的。我想问题是,我们应该改用 rebase 吗?