如何不忘记添加文件

How not to forget to add files

我经常出现的情况是:

万事俱备,我为自己感到骄傲

我的队友拉:他们无法编译,因为缺少一个文件。 他们都想杀了我。

问题是,如何确保我已经添加了所有需要的文件?

作为最佳实践,您应该在提交之前始终检查 git status

您可以修改任何 git 挂钩(预提交,post-提交)以将未跟踪文件的屏幕列表打印出来,这样您就可以看到它并且不会错过它。

使用此命令打印出未跟踪的文件:

git ls-files --others --exclude-standard

另一个解决方案:
你也可以写一个别名来为你做这件事,这样你下次就不会忘记了。

很高兴拥有:

设置您的颜色设置以显示您的颜色更改,意思是

  • 红色 - 已删除的文件
  • 绿色 - 添加的文件
  • 洋红色 - 修改后的文件

因此您可以更轻松地跟踪更改。

我总是在推送之前执行 git status,以确保我没有遗漏 "to add" 文件列表中的任何内容。

输出非常具有解释性:

$ git status
On branch XXX
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   YYY

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

    ZZZ1
    ZZZ2

然后,有某种staging环境与大家共享也是很好的。这样,当你推送时,你还要确保 staging 环境也是稳定的,这样其他人就会有你最近更改的工作示例:

$ git checkout staging
$ git pull --rebase
$ git merge <your_branch>
$ git push

我喜欢让我的 bash 提示在我有脏状态时警告我,以及我正在处理哪个分支。

/tmp/myrepo (master) $ touch newfile.txt
/tmp/myrepo (master %) $ git add newfile.txt 
/tmp/myrepo (master +) $ git commit -m 'added newfile'
[master 9fe6399] added newfile
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 newfile.txt
/tmp/myrepo (master) $ 

这是通过将以下内容添加到 .bashrc

来实现的
export GIT_PS1_SHOWDIRTYSTATE=true
export GIT_PS1_SHOWSTASHSTATE=true
export GIT_PS1_SHOWUNTRACKEDFILES=true
export PS1='${debian_chroot:+($debian_chroot)}\[3[01;33m\]\w\[3[01;32m\]$(__git_ps1) \[3[01;36m\]$ \[3[00m\]'