将 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
当然这取决于您希望在本地远程保留哪个分支。
我有一个我永远不想推送到 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
当然这取决于您希望在本地远程保留哪个分支。