gpt4 book ai didi

git - git checkout 会删除不应该存在的文件吗?

转载 作者:IT王子 更新时间:2023-10-29 00:54:00 26 4
gpt4 key购买 nike

如果我在 git 中设置一个 post-recieve 钩子(Hook)

#!/bin/sh
GIT_WORK_TREE=/var/www/www.example.org git checkout -f

这会删除服务器上但不在我本地 git 存储库上的文件吗?

如果会,有什么办法可以阻止吗?

最佳答案

这取决于文件是否会被删除取决于它们在 checkout 之前是否已经存在于存储库中。

如果服务器 (/var/www/www.example.org) 上的文件在服务器上的 repo 中被跟踪,但新 checkout 包含删除它们的更改,那么它们将在服务器端被删除.

如果服务器上的文件没有在服务器上的 repo 中被跟踪,那么它们将保留下来。由于 Git 不知道它们,因此 Git 不会删除它们。

要判断它们是否在服务器上被跟踪,您可以执行 git status <file in question> .如果它说:

# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# <file in question>

那么您就知道 checkout 不会删除 .

请注意,如果稍后存在于新的 checkout 中,而不是下一个删除的 checkout 将删除它。

关于git - git checkout 会删除不应该存在的文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9232126/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com