svn - merge git : via git-svn, 说已经是最新的,但 git-diff 说存在差异

标签 svn git merge git-svn

我正在使用 git-svn 来处理代码库,我需要将主干中的更改 merge 到我的分支。

我在 git 中提取了两个分支,当我在分支中运行 git diff trunk 时,我可以看到所有更改。

但是,当我运行 git merge Heads/trunk 时,我收到一条消息“已经是最新的”。

这显然不是最新的。我做错了什么?

最佳答案

没有什么比例子更好的了。以下是如何进入这种情况:

(从空目录开始):

> git init
> echo "hello" > a.txt
> git add -A
> git commit -m "Created a on master"
> git branch test
> git checkout test

此时 a.txt 在主分支和测试分支上是相同的

> echo "goodbye" > a.txt
> git add -u
> git commit -m "Changed a on test"

现在(显然)会有差异:

> git diff --name-status master 

M       a.txt

但是 git 没有什么可以 merge 的:

> git merge master
Already up-to-date.

这是因为更改是在测试中进行的,而不是在主控上进行的。如果您切换到测试,diff 将类似地报告,但 merge 现在将 merge 从测试到主的更改:

> git checkout master
> git diff --name-status test 

M       a.txt
> git merge test
Updating 088cd9d..3d8c8e2
Fast-forward
 a.txt |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

Git merge 是定向的,从分支 A 到 B 的 merge 与从 B 到 A 的 merge 不同。

关于svn - merge git : via git-svn, 说已经是最新的,但 git-diff 说存在差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2808253/

相关文章:

java - Maven、Subversion、Javadocs

SVN - 从备份恢复存储库

Git 只允许从 development merge 到 master

Java 合并带有模式的数组列表

java - 链表上的归并排序

git svn clone 创建空的 git 存储库?

svn - PhpStorm 中缺少作为版本控制选项的 Subversion

gitlab-shell -> git push -u origin master -> fatal : The remote end hung up unexpectedly

git - 判断两个 Git 分支是否已经 fork

git - 按文件扩展名过滤(排除)git log 结果