繁体   English   中英

git:只播放新文件

[英]git: stage only new files

当我有:

  • 脏工作目录,
  • 脏的集结区,
  • 我将一些新文件复制到项目中,

我该如何只上新的?

git alias adduntracked=…

此别名将尊重您的忽略模式(内置,全局和每个目录,如git-ls-files --exclude-standard的帮助所述)。 它将在树的顶层运行。

[alias]
adduntracked=!git add $(git ls-files -o --exclude-standard)

我建议像这样复制:

for i in source/path ; do cp source/path/$i ./$i ; git add $i ; done

我不太熟悉shell脚本,但这是一次尝试

如果要将所有未跟踪的文件添加到临时区域:

git add .

我想你想要这个,同时保持对索引之外的跟踪文件的非分段更改。

git stash
git add . 
git stash apply

这会有帮助吗?

要允许名称中包含特殊字符的文件,请使用以下别名:

au = "!git ls-files -z -o --exclude-standard | xargs -0 git add; #"

git ls-files -o --exclude-standard | xargs git add

对bstpierre解决方案稍有改进,您可以使用此变体来指定要添加文件的目录:

[alias]
  adduntracked="!f() { git add $(git ls-files -o --exclude-standard $@); }; f"

git add -u是我用来训练未跟踪的东西。

编辑:下面的评论提醒我,它的git add . 添加未跟踪(以及更改的文件,我认为这不是你想要的?)。 我使用git add -ugit add -u已删除的文件。

git添加未跟踪

暂无
暂无

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

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