V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
tuobashao
V2EX  ›  问与答

git 裸库中,某个分支的 commit 历史,和拉取到本地之后查看该分支的 commit log 不一致

  •  
  •   tuobashao · Nov 19, 2018 · 2577 views
    This topic created in 2729 days ago, the information mentioned may be changed or developed.
    某个裸库,有分支 a 和 b,其中分支 a 在裸库中的 commit log 是 1->2->3->4,b 在裸库中的 commit log 是 1->2->3->E->R
    ,然后从这个裸库中拉取代码到本地,发现分支 a 的 commit log 变成了 1->2->3->E->R->4,这是为什么,能请 v 友指点指点吗
    Supplement 1  ·  Nov 19, 2018
    之前我理解有误,现在发现复现方法了,
    ----
    * 1647898 C
    * 8ffb12a B
    | * 8aab566 C
    |/
    * 205ffc9 A
    * 503e2ad Merge remote-tracking branch 'origin/dev'
    |\
    | * 5a4e6f5 dev
    * | 9b78086 master
    |/
    * be0bd33 Initial empty repository
    ---
    左边是 master,右边是 dev,本地将 dev 分支 merge 到 master 之后,push 到远程库并入库,然后
    1 本地在 master 分支上提交 A 并 push 到远程 master 入库,
    2 还是本地在 master 分支上,接着在 A 基础上提交 B 并 push 到远程 master 入库
    3 还是本地在 master 分支上,提交 C,push 到远程 dev 分支上并入库
    然后查看本地的分支情况,就是上图了

    问题:
    为什么 C 的父节点是 A,而不是 dev ?我记得俩个分支相互在本地直接 push 到远程的对方的分支并入库后,会自动更正父节点的啊?
    4 replies    2018-11-19 11:55:23 +08:00
    sagaxu
        1
    sagaxu  
       Nov 19, 2018 via Android
    pull 的时候做了 rebase
    linchengzzz
        2
    linchengzzz  
       Nov 19, 2018
    应该是 A rebase B 了
    supuwoerc
        3
    supuwoerc  
       Nov 19, 2018
    --rebase
    msg7086
        4
    msg7086  
       Nov 19, 2018
    Fetch 了以后做了 Rebase。
    正常 Fetch 只会把远端拉到本地,不会做任何操作。如果你用了 Pull,要么是 Fetch+Merge,要么是 Fetch+Rebase,总之都会变。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1285 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 23:55 · PVG 07:55 · LAX 16:55 · JFK 19:55
    ♥ Do have faith in what you're doing.