git checkout会覆盖所有文件吗?

时间:2015-09-07 09:49:35

标签: git laravel web-applications version-control octobercms

我目前为我的网络应用设置了这种设置

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

    #!/bin/sh
    GIT_WORK_TREE=/public_html/projects/test git checkout -f
    
    1. 我在笔记本电脑上进行了更改。执行 git add。 git commit git push web master
    2. 我的问题是它会重置/ public_html / projects / test中的文件以使其与开发回购保持同步,还是仅仅推动更改。这个问题是当人们在网络应用上传内容/提交内容时,它会添加到/ public_html / projects / test / uploads文件夹中,我担心的是它是否会每次用我的开发副本替换上传内容。此外,我无法添加/上传到.git_ignore,就像我通过开发机器进行上传一样,然后执行推送我希望这些文件也被添加到public_html生产版本中。那么,git checkout -f如何运作?

1 个答案:

答案 0 :(得分:0)

git checkout -f有两个值:

  1. 它将git树中的文件返回给HEAD
  2. 当您在git tree更改文件的分支时,它会隐藏您修改的文件列表
  3. 如果文件或文件夹保留在git中,则可以通过git add -f手动将其添加到git树。因此对于开发人员机器来说可能会有所帮助。