我正在评估别人的git存储库,我不想做出意外提交的更改。
有没有一种方法可以仅使用“纯Git”本地保护分支?例如通过防止将提交保存到特定分支来实现?
我只需要这个影响我的本地克隆。
不应涉及任何Github或其他git托管服务功能。 我希望这是尽可能便携的。
我正在评估别人的git存储库,我不想做出意外提交的更改。
有没有一种方法可以仅使用“纯Git”本地保护分支?例如通过防止将提交保存到特定分支来实现?
我只需要这个影响我的本地克隆。
不应涉及任何Github或其他git托管服务功能。 我希望这是尽可能便携的。
如果这是你的本地克隆,那么这就是你的代码库。你已经从他们的代码库中获取了历史记录,并正在评估所获取的历史记录。
没有必要保护任何东西,只需不要推送即可。可以肯定地说,他们不会无意中获取。如果你想防止可能的自反推送,可以这样做。
git config remote.origin.pushurl "You really didn't want to do that."
你所做的任何事情只有在你 push 或他们 fetch(新的或更改的)引用和任何新的历史记录时才会影响他们的存储库。
.git/hooks/pre-commit
中:#!/bin/bash
current_branch="$(git branch --show-current)"
for protected_branch in "main" "other_branch_you_want_protected"; do
if [[ "$protected_branch" == "$current_branch" ]]; then
echo "ERROR: local branch $current_branch is protected"
exit 1
fi
done
exit 0
chmod +x
命令。
pre-commit
钩子,当在特定分支上时会失败。但你也可以检出一个新分支,这样如果手指抽搐并不小心输入了git commit
命令,你的提交将在新分支上。 - larsks