為了更好地理解 git,我了解到:
- 提交不是更改/增量,它們是快照
- 隱藏是提交
多年來我一直認為提交是增量,但它們實際上是快照。知道了。
現在我這樣做:
- 在檔案 A 中鍵入一些文本
- 藏
- 在檔案 B 中鍵入一些文本
- 犯罪
- 隱藏流行音樂
我期望 stash pop 將洗掉檔案 B 中的文本,因為它正在應用添加此文本之前的專案快照。但事實并非如此,它將存盤應用為增量,而不是快照。
那么我在這里錯過了什么?提交成為快照的真正含義是什么?
uj5u.com熱心網友回復:
它應用存盤,就好像它是一個增量,而不是一個快照
正確的。它本身就是一個快照,但“應用”是一種合并形式,并作為與它形成的 HEAD的差異來制定。存盤提交沒有洗掉檔案 B 中與它之前的 HEAD 提交相關的文本,因此應用它不會洗掉文本。
如果您不了解合并邏輯,您可能需要閱讀我的https://www.biteinteractive.com/understanding-git-merge/。不僅合并本身,而且 revert、cherry pick、rebase 和您的“應用”都使用合并邏輯。(這就是為什么它們中的任何一個,包括應用存盤,都可能由于合并沖突而失敗。)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/456579.html
標籤:混帐
