如何比较两个 Git 分支并仅列出 feature/topic (第二个)分支中的新提交
How can I compare two Git branches and only list the new commits in the feature/topic (second) branch
我已经执行了以下步骤,但是当我将 develop
分支与 feature
分支进行比较时,我看到了两条提交消息,而不是我希望看到的只有 1 条提交消息。一个是已经在 develop
中的先前提交,另一个是我在 feature
分支中所做的最新提交。
- 我已经从远程分支
拉取并合并了本地 develop
分支
- 然后在
develop
的基础上创建了一个新分支
- 在
feature
分支 中进行了更改并添加了这些文件和 git commit -m "latest changes"
- 执行
git push
将feature
分支推送到远程分支
- 当我将
develop
与 feature
进行比较时,我看到了两个提交而不是一个(我在 feature
分支中创建的那个)
为什么会发生这种情况,我该如何解决这个问题?
回答你的问题:你可以通过执行git log <parent_branch_name>..<your_feature_branch_name>
看到两个分支之间的区别,例如git log develop..feature
.
关于你的情况: 据我所知,这种行为最可能的原因是在你的本地仓库中合并开发分支。如果在合并过程中(fyi pull 操作是组合 fetch 和 merge),merge 没有像 fast-forward 那样处理,那么你得到了 develop 分支的另一个状态,这里可能是 merge commit,你可以比较提交哈希。
为了防止这种情况,你应该使用git pull --rebase
命令来拉取一些本地分支。
如果您想在将本地功能分支推送到远程服务器之前获得最新更改,您还可以在您的功能分支上 运行 git pull --rebase origin develop
,然后提交的树看起来就像您刚刚创建的一样你的功能分支来自 develop 并在父分支提交后将所有创建的提交放在功能分支上。
希望对您有所帮助!
我已经执行了以下步骤,但是当我将 develop
分支与 feature
分支进行比较时,我看到了两条提交消息,而不是我希望看到的只有 1 条提交消息。一个是已经在 develop
中的先前提交,另一个是我在 feature
分支中所做的最新提交。
- 我已经从远程分支 拉取并合并了本地
- 然后在
develop
的基础上创建了一个新分支
- 在
feature
分支 中进行了更改并添加了这些文件和 - 执行
git push
将feature
分支推送到远程分支 - 当我将
develop
与feature
进行比较时,我看到了两个提交而不是一个(我在feature
分支中创建的那个)
develop
分支
git commit -m "latest changes"
为什么会发生这种情况,我该如何解决这个问题?
回答你的问题:你可以通过执行git log <parent_branch_name>..<your_feature_branch_name>
看到两个分支之间的区别,例如git log develop..feature
.
关于你的情况: 据我所知,这种行为最可能的原因是在你的本地仓库中合并开发分支。如果在合并过程中(fyi pull 操作是组合 fetch 和 merge),merge 没有像 fast-forward 那样处理,那么你得到了 develop 分支的另一个状态,这里可能是 merge commit,你可以比较提交哈希。
为了防止这种情况,你应该使用git pull --rebase
命令来拉取一些本地分支。
如果您想在将本地功能分支推送到远程服务器之前获得最新更改,您还可以在您的功能分支上 运行 git pull --rebase origin develop
,然后提交的树看起来就像您刚刚创建的一样你的功能分支来自 develop 并在父分支提交后将所有创建的提交放在功能分支上。
希望对您有所帮助!