git:只播放新文件

时间:2010-09-14 08:11:52

标签: git bash scripting

当我有:

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

我如何只提供新的?

git alias adduntracked=…

8 个答案:

答案 0 :(得分:13)

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

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

答案 1 :(得分:1)

我建议复制这样的内容:

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

我在shell脚本方面不是很好,但这将是一次尝试

答案 2 :(得分:1)

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

git add .

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

git stash
git add . 
git stash apply

这会有帮助吗?

答案 3 :(得分:1)

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

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

答案 4 :(得分:0)

git add -u是我用来跟踪未跟踪的内容。

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

答案 5 :(得分:0)

git add untracked

答案 6 :(得分:0)

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

答案 7 :(得分:0)

solution of bstpierre略有改进,您可以使用此变体来指定要添加文件的目录:

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