[英]How to filter particular files for the release from a git repository?
請在開發git倉庫中創建一個獨立的分支是可能的,該分支僅包含特定版本的文件,而無需進行回歸測試,例如? 怎么樣?
例如,我想創建僅包含perl命令的分支並將其推送到/usr/local/bin
的git存儲庫。 與master分支合並后,將具有(更改和發布)歷史記錄軌跡的部署,但沒有測試開發的歷史記錄等。
我讀過Git:將特定文件和歷史記錄從一個存儲庫轉移到另一個存儲庫,但是我不想使用filter-branch
創建一個全新的存儲庫 。 我寧願只創建具有整個歷史記錄的release分支,但剝離到特定文件。 假設git log --file
和git filter-branch
。
我找到了最初問題的技術解決方案,但有關發行版管理的VonC答案更為正確。
set -e
git filter-branch --prune-empty --index-filter '
git ls-tree -z -r --name-only --full-tree $GIT_COMMIT \
| grep -v "^\(some_file_regexp\|another_file_regexp\)$" \
| xargs -0 -r git rm -q --cached -r --ignore-unmatch'
git checkout -b release
git checkout master
git reset --hard refs/original/refs/heads/master
rm -r .git/refs/original
有沒有更優雅的技術解決方案?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.