将 Git 存储库标记为仅限本地,这样就无法推送它?

Mark Git repository as local only so it can not be pushed?

我有一个我永远不想推送到 GitHub 的特定项目。也就是说,我只想在本地使用 Git 并确保它永远不会被推送到远程存储库。有没有办法标记 directory/project 以便 锁定 并且如果尝试 push 命令将失败?这样我就不用担心不小心推到它了。我已经使用 Git 这么久了,add/commit/push 根植于我的手指,我不想在一些深夜节目中发生 事故 session.

您可以添加一个 pre-push 挂钩来防止存储库被推送。将现有的 .git/hooks/pre-push.sample 重命名为 .git/hooks/pre-push(如果该文件不存在,则创建该文件)。文件的内容应该是这样的:

#!/bin/sh

echo 'Repository cannot be pushed' 2>&1
exit 1

echo 是可选的,但脚本应该以非 0 退出。

两个选择(据我所知):

1) 删除本地存储库对远程存储库的引用。

git remote remove origin

通常,只有一个名为 'origin' 的远程引用。 您可以检查其他参考资料:

git remote show

2) 保留引用,但将它们指向不同的存储库:

git remote set-url origin ${somethingElse}

您可以按如下方式添加本地遥控器:

1) 使用以下命令在您的计算机中的某处创建一个裸存储库:

git init --bare path/to/localrem.git

这将创建一个没有工作目录的裸存储库,这是实际遥控器中通常使用的。 (它将创建一个名为 localrem.git 的文件夹,这是通常的 .git 存储库,但这是用于遥控器的,显然你可以将 localrem 更改为你喜欢的任何名称)

2) 接下来在您的原始存储库中添加新的遥控器,就像添加任何普通遥控器一样,除了路径不是 url :

git remote add origin path/to/localrem.git

3) 现在您可以随心所欲地推动,而不必担心世界会看到您的作品。

git push origin master

当然这取决于您希望在本地远程保留哪个分支。