[英]How to safely checkout a temporary working tree from a git repository?
下面的腳本將工作樹檢出到當前目錄中,而不會以任何方式影響源存儲庫(特別是可以在沒有寫訪問權的存儲庫上執行它,例如,屬於另一個用戶的存儲庫)。
用法:
git-checkout-tmp-worktree repo_path [revision]
例子:
git-checkout-tmp-worktree ~/myrepo1
git-checkout-tmp-worktree ~/myrepo1 HEAD^^
git-checkout-tmp-worktree :
#!/usr/bin/env bash
if [[ $# -eq 0 || $# -gt 2 ]]
then
echo >&2 "Usage: $(basename "$0") repo_path [revision]"
exit 1
fi
repo="${1}"
revision="${2:-HEAD}"
tmpdir="$(mktemp -d)"
trap "rm -rf '$tmpdir'" EXIT
GIT_INDEX_FILE="$tmpdir/index" git --git-dir="$repo"/.git checkout "$revision" .
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.