1

我目前为我的网络应用程序进行了这种设置

  1. 笔记本电脑中应用程序的开发副本,这是我进行所有编码的地方。
  2. 一个裸仓库(在我的 Web 服务器的 /projects/test.git 文件夹中使用git init --bare )。另外,我添加了一个后期接收。

作为

#!/bin/sh
GIT_WORK_TREE=/public_html/projects/test git checkout -f
  1. 我在笔记本电脑上进行了更改。做一个git add 。, git commitgit push web master

我的问题是它会重置 /public_html/projects/test 中的文件以使其与开发存储库保持同步,还是只会推送更改。这个问题是,当人们在网络应用程序上上传内容/提交内容时,它会添加到 /public_html/projects/test/uploads 文件夹中,我担心它是否会每次都用我的开发副本替换上传的内容。此外,我无法将 /uploads 添加到 .git_ignore ,因为当我通过开发机器进行一些上传然后进行推送时,我希望这些文件也被添加到 public_html 生产版本中。那么,这是如何git checkout -f工作的呢?

4

1 回答 1

0

git checkout -f有两个值:

  1. 它将 git 树上的文件返回给 HEAD
  2. 当您在 git 树上更改文件的分支时,它会从您修改的文件列表中隐藏

如果文件或文件夹停留在 git ignore 您可以手动将其添加到 git 树git add -f。所以它可能对开发者机器有帮助。

于 2015-09-21T09:59:16.260 回答