Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Git 远程恢复被force-push的队友的commit 2019.07.29 @mark
Slide 2
Slide 2 text
情景⼀一
Slide 3
Slide 3 text
情景⼀一:彼此没有沟通,A、B各⾃自依次force push的了了代码。 远程仓库显示了了最后的B的提交。 请问如何,恢复A的部分commit? 开发A 开发B 远程仓库 19:00 pm force push 19:50 pm force push
Slide 4
Slide 4 text
⽅方法⼀一 ⽤用户A解决
Slide 5
Slide 5 text
经过沟通,开发者A可以cherry-pick或者rebase,把⾃自⼰己的本地 提交,和远程分⽀支,进⾏行行处理理,再进⾏行行后续的追加提交。
Slide 6
Slide 6 text
⽅方法⼆二 中央仓库解决
Slide 7
Slide 7 text
远程机器器,git reflog ,使⽤用cherry-pick恢复。 实际上这个不不合理理。中⼼心节点,不不应该操作。 其实我不不太清楚,中央节点,有没有reflog,应该是有的 中央仓库解决
Slide 8
Slide 8 text
⽅方法三 ⽤用户B解决
Slide 9
Slide 9 text
1.本地reflog仅仅是⾃自⼰己的——⽆无法下载到远程的reflog。这条 路路不不通。 2.⽆无法QQ远程共享屏幕帮A操作,假设A还离职了了,还删除了了 远程仓库(Hard模式) B在本地⽆无记录的情况下如何恢复A的部分节点? B的Hard模式
Slide 10
Slide 10 text
Git-apply Git-am
Slide 11
Slide 11 text
1.中央仓库是有记录的。 2.查看想要找回的commit 3.下载patches⽂文件 4.本地使⽤用 git apply 针对单个⽂文件 5.本地使⽤用 git am 针对单⽂文件、⽬目录(批量量⽂文件) 6.区别am会⽣生成commit节点。这个就是我们想要的
Slide 12
Slide 12 text
问题解决 The End