git恢复到master版本_git子模块如何还原到提交的版本?

如果我在一个父项目分支中更新子模块,然后切换到同一工作树中的另一个分支,则该子模块引用似乎已被修改。

例如(哈希值可能会有所不同,您可能必须向下滚动代码窗口才能看到所有行):

# create soon to be submodule

mkdir /tmp/example-submodule

cd /tmp/example-submodule

git init

echo a > a

git add a

git commit -m 'm'

cp -r .git /tmp/example-submodule.git

cd /tmp/example-submodule.git

git config --bool core.bare true

cd /tmp

/bin/rm -rf /tmp/example-submodule

git clone file:///tmp/example-submodule.git

#create other project and add sub-module

mkdir /tmp/example-supermodule

cd /tmp/example-supermodule

git init

echo x > x

git add x

git commit -m 'm'

cp -r .git /tmp/example-supermodule.git

cd /tmp/example-supermodule.git

git config --bool core.bare true

cd /tmp

/bin/rm -rf /tmp/example-supermodule

git clone file:///tmp/example-supermodule.git

#update the submodule

cd /tmp/example-supermodule

git submodule add file:///tmp/example-submodule.git example-sub

git commit -a -m'm'

git submodule status

# prints: 189ea25d45618862d0bfcbf5bd995e05ce1c2e4e example-sub (heads/master)

git push

#update the submodule

cd /tmp/example-submodule

echo b > b

git add b

git commit -m 'm'

git push

#create new branch in super module and update submodule to new HEAD

cd /tmp/example-supermodule

git branch otherbranch

git checkout otherbranch

git submodule update --remote

git commit -a -m'm'

git submodule status

# prints: 26f94e59002603475a1ba731104f92e10e88cf6b example-sub (remotes/origin/HEAD)

git push

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值