繁体   English   中英

Git stash取消删除已删除的文件并将其添加到未跟踪的文件中

[英]Git stash is undeleting a deleted file and adding it to untracked files

在提交时,我正在重建我的节点项目的应用程序,并且构建的文件放在dist目录中。 为了避免已经存在dist目录中的文件问题,我执行以下操作:

  • 取消停止dist目录
  • 反转dist目录中的任何更改
  • 存储任何未分级或未跟踪的文件
  • 构建应用程序
  • 暂存dist目录
  • 解压缩未分级和未跟踪的文件

这些是我使用的命令:

git reset HEAD -- dist && \
git checkout -- dist && \
git stash push -k -u -m "build" && \
npm run build && \
git add . && \
git stash pop

直到今天这个工作正常。 我发现一些奇怪的行为,删除的文件在运行上述命令后未删除并且未跟踪。

在运行上述命令之前, git status输出如下所示:

On branch master                                        
Your branch is ahead of 'origin/master' by 1 commit.    
  (use "git push" to publish your local commits)        

Changes to be committed:                                
  (use "git reset HEAD <file>..." to unstage)           

        deleted:    scripts/substenv.js                 

运行命令后, git status输出如下所示:

On branch master
Your branch is ahead of 'origin/master' by 1 commit.
  (use "git push" to publish your local commits)

Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        deleted:    scripts/substenv.js

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

        scripts/substenv.js                 

未跟踪的文件出现在git stash push -k -u -m "build"命令之后。

任何人都可以解释为什么/发生了什么?

您需要将文件添加到.gitignore以停止在Untracked files列表中看到它。

基本上你的藏匿文件中包含文件,然后在重新应用存储时将其添加回来。

另外,我对您的设置/命令感到困惑,为什么不将dist文件夹添加到.gitignore文件中?

根据评论更新:

我想你可能需要更新你的npm build脚本。 由于您需要发布dist文件夹,因此应该检入其中的文件。使用build文件夹作为中间步骤,并将其添加到.gitignore

  • 使用npm build构建应用npm build
  • 这将在build/文件夹中创建一堆文件(应该被忽略)
  • 将您想要/需要签入的文件复制到dist文件夹中
  • 利润

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM