问一个 GIT 的问题

2014-05-28 15:50:26 +08:00
 yueyoum
同事那边的问题,我去搞了半天也没弄明白。

同事A 当前工作在dev分支下,
把同事B的 master 分支合并到了自己的 dev分支。 用的GUI操作的。

然后A master 分支中有几个文件,在合并后的B dev分支中 却没有。


我去B那里进行了如下操作

git checkout master
git pull origin master
git checkout dev
git diff --stat master

更新自己本地的master分支,然后 对dev和 master分支做diff

结果显示有不一样的内容。也包括了 master分支有那几个文件,但dev分支没有

但我再次操作
git merge master
结果输出为 already up-to-date

既然有diff,又为何 already up-to-date
3353 次点击
所在节点    git
6 条回复
clino
2014-05-28 16:03:15 +08:00
gitk --all 或者 git log --all --graph --decorate 这样看应该就会比较清楚吧
HackerOO7
2014-05-28 16:05:15 +08:00
我以前遇到过几次被revert过的commit在merge的时候丢过的问题,可以看看那几个文件在master分支中的commit记录。

这个时候应该用git rebase master
oklai
2014-05-28 16:23:26 +08:00
git checkout master
git status
确定下那几个文件是否已添加到master分支中,只是在文件目录下存在是不算的,必须add。
yueyoum
2014-05-28 16:59:46 +08:00
@clino
@HackerOO7
@oklai

补充一下 我当时的其他操作

在 B的 dev分支中

git blame FILE
提示找不的这个 FILE

git log --diff-filter=D --summary | grep FILE

也找不到那些 文件。


经过这些分析发现 应该是 在merge A/master 到 B/dev 的时候,没把那几个文件带过来
但是不知道为什么…………


而且在 A 那儿查看的时候, log 查找那些文件, 只有ADD 记录。

搞不明白…………
tongle
2014-05-28 17:18:16 +08:00
@yueyoum 只有ADD记录?是不是没有commit导致的?
yueyoum
2014-05-28 17:34:57 +08:00
@tongle

不是, 我们用的gitlab,gitlab上看到的有那些文件的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/114724

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX