我想挑選提取的遠程提交,同時保留它的原始SHA提交代碼(我當前的分支是基於這個遠程,我重新設置爲以前的狀態) 。cherry-pick一個提交併保留原始的SHA代碼
回答
一個git SHA散列是從不同的信息來計算:
- 的樹它是指;基本上,提交出現的分支中的存儲庫的當前內容。
- 家長提交的SHA。
- 該提交消息。
- 作者信息:名稱,電子郵件和時間戳。
- 提交者信息:姓名,電子郵件和時間戳。
即使您編輯櫻桃選擇的提交以使樹,提交消息,作者和提交者信息完全相同,父提交的SHA(或提交,如果處理合並提交)將永遠不同。因此,在挑選櫻桃之後,您將無法生成相同的SHA哈希值(除非發現SHA衝突;))。
感謝您提供有用的信息:)事實上,我使用'git branch master remote/master'命令創建了我的分支並保持最初的SHA ...然後我重置爲特定的提交,現在我想重置到另一個更近的一個,但它會回到另一個點上的回購日誌... – blameless75
事實上,當我嘗試cp提交我有一個「刪除我們」的錯誤有關的所有文件...這很奇怪... – blameless75
編輯:無視我以前的評論,我混淆了遠程的... – blameless75
SHA提交哈希由存儲庫的狀態構成,使用整個歷史直至提交(分支不包括在內)。這意味着,除非整個歷史記錄相同,否則無法保留原始散列選擇,在這種情況下,櫻桃挑選將毫無意義。
它實際上是repo日誌上的下一個提交,我嘗試將我的本地分支重置爲所述提交的SHA,但是然後我的分支位於完全不同的位置... – blameless75
好吧,更確切地說,SHA哈希不會表示整個存儲庫_的狀態,但是_commit及其整個歷史_。該存儲庫可能有不同的分支機構和提交... – siegi
@siegi謝謝,補充。 「在那個時間點整個資源庫的狀態」是我心中想的,但是,分支也被排除在外 – eis
根據您對其他答案的意見,我認爲你只是想重置一些遠程提交。您可以使用git reset --hard <SHA>
來執行此操作。請注意,這將丟棄工作目錄中的所有(未提交)更改,並且您在此分支中完成的所有提交將不再可訪問。
如果這不是你想要的(或者你不確定),請更清楚地描述你做了什麼,你想做什麼或者你想做什麼。
- 1. Git合併並保留原始提交者
- 2. Cherrypick提交訂單
- 3. 在表單提交後保留原始選定的值python/flask
- 4. 以表格形式保留原始InfoPath提交日期
- 5. 提交表單並保留值設置
- 6. Seq.groupBy:保留原始順序
- 7. 保留原始值與ko.mapping.fromJS
- 8. 在分支之間複製個別提交,保留SHA-1標記
- 9. 保留並保留提交時的舊下拉列表值並刷新頁面
- 10. Git將所有提交的原始/主文件提交到原始/主文件中的單個提交
- 11. 將兩個數據幀合併爲一個,同時保留原始行號
- 12. 保留字符串的原始值,它像一個JSON
- 13. 在jQuery中保留一個變量的原始值
- 14. MSVC堆保留/提交
- 15. 在提交後保留值
- 16. 如何做並排條形圖ggplot並保留原始排序
- 17. Django提交多個表單並在提交後保留字段數據輸入
- 18. 保留可觀察的原始數據
- 19. 保留原始網址pushState的
- 20. jQuery:提交併保留在同一頁面
- 21. 如何提交表單並保留在同一頁面
- 22. 如何提取的陣列的元件,並且在另一個插入它,而仍保留其原始索引
- 23. 交換HTML元素,但保留原始ID - JS
- 24. 合併兩個git倉庫,保留所有提交歷史
- 25. 還原一個Git合併提交,然後恢復該還原
- 26. 替換innerHTML並返回到保留事件的原始頁面
- 27. Github Restful API由sha提交
- 28. 從PDF文件中提取CropBox作爲MediaBox並保留原始字體
- 29. 在保留原始ID和原始表的同時從多個表創建表?
- 30. Git:簽出一個保留未提交更改的分支
我認爲你誤解了提交hash是什麼。 –
你爲什麼要保留原始的SHA哈希? – siegi