我对一个文件进行了更改,再加上一个新文件,我想在切换到另一个任务时使用git stash将它们保存起来。但是git stash本身只存储对现有文件的更改;新文件仍保留在我的工作树中,打乱了我未来的工作。我如何保存这个未跟踪的文件?
当前回答
你如何隐藏未追踪的文件?
git stash --include-untracked
其他回答
您只需使用以下命令即可完成
git stash save --include-untracked
or
git stash save -u
有关git stash的更多信息,请访问此帖子(单击此处)
将文件添加到索引:
git add path/to/untracked-file
git stash
索引的全部内容,加上对现有文件的任何未标记的更改,都将被放入存储库。
在gitbash中,通过使用命令实现未跟踪文件的隐藏
git stash --include-untracked
# or
git stash -u
http://git-scm.com/docs/git-stash
gitstash从工作区中删除任何未跟踪或未提交的文件。您可以使用以下命令恢复git存储
git stash pop
这将把文件放回本地工作区。
我的经历
我不得不对gitIgnore文件进行修改,以避免.classpath和.project文件移动到远程存储库中。到目前为止,我不能在远程回购中移动这个修改过的.gitIgnore。
.classpath和.project文件对于eclipse很重要,eclipse是我的java编辑器。
首先,我有选择地添加了其余的文件,并提交了暂存。但是,除非修改的.gitIgnore字段和未跟踪的文件(即.project和.classpath)未被隐藏,否则无法执行最终推送。
我用过
git stash
用于隐藏已修改的.gitIgnore文件。
对于存放.classpath和.project文件,我使用
git stash --include-untracked
它从我的工作区删除了这些文件。缺少这些文件会影响我在eclipse中处理工作位置的能力。我继续完成将提交的文件推送到远程的过程。成功完成后,我使用
git stash pop
这将相同的文件粘贴回我的工作区。这给了我在eclipse中处理同一项目的能力。希望这能消除误解。
要隐藏包含未跟踪文件(尤其是.gitignore中的文件)的工作目录,您可能需要使用以下cmd:
git stash --include-untracked
或者,您可以使用缩写-u来代替--include untracked,或者简单地使用git stash--all来存储所有文件,包括未跟踪和忽略的文件。2018年,这个数字发生了变化,所以请确保您的数字是最新的。
警告:似乎存在(或曾经存在)被忽略目录的内容可能被永久删除的情况。有关详细信息,请参阅此存档网站。
在git版本2.8.1上:以下对我有用。
将已修改和未跟踪的文件保存在不带名称的存储中
git stash save -u
使用名称将已修改和未跟踪的文件保存在存储库中
git stash save -u <name_of_stash>
您可以稍后使用pop或apply,如下所示。
git stash pop
git stash apply stash@{0}
推荐文章
- 在单个文件中重新启动/撤消冲突解决方案
- Visual Studio代码如何解决合并冲突与git?
- 无法推送到远程分支,无法解析到分支
- Git:如何将数据库重置为特定的提交?
- 如何在合并期间使用Git和命令行保存本地文件或远程文件?
- 能够用一个命令推到所有git遥控器?
- 重新基于Git合并提交
- 忽略已经签入目录的内容?
- 如何从windows cmd保存git提交消息?
- (Mac) -bash: __git_ps1:命令未找到
- 如何删除多个已删除的文件在Git仓库
- 使用vimdiff查看所有' git diff '
- 如何拉特定的目录与git
- 本地存储库中的文件与源文件之间的差异
- 将Git存储库内容移动到另一个存储库,保存历史记录