Commit and automatically add all untracked files

后端 未结 5 1887
南方客
南方客 2020-12-23 09:07

I often forgot that I have some new files and directly do,

git commit -a -m \"My commit message\"

This only commits changed files, and I ha

5条回答
  •  鱼传尺愫
    2020-12-23 09:49

    Here are a few options:

    • Use git commit --amend so that you end up with only one commit after adding the untracked files (but not if you've already pushed the previous commit);
    • Use git commit --interactive;
    • Create an alias or script that automatically adds new files (examples in other answers). Here are two aliases that I use for exactly this purpose:

      [alias]
          untracked = ls-files --other --exclude-standard
          add-untracked = !git add $(git untracked)
      
    • Squash your two commits using git rebase -i, git reset and git commit, or git merge --squash onto another branch.

    However, you cannot override a builtin command such as commit with an alias, so it is still up to you to remember to add the files that you want to the index before committing.

    Unfortunately as well, you cannot specify paths along with git commit -a; I just tried git commit -a $(git untracked) and it told me fatal: Paths with -a does not make sense. So to answer your basic question, I think a git script would be the only non-interactive way.

提交回复
热议问题