如何不忘记添加文件

时间:2015-05-20 10:00:14

标签: git repository

我经常遇到的情况是:

  • 我创建了一个新文件
  • 我修改现有文件

一切都在汇编,我为自己感到骄傲。

  • 我承诺
  • 我将其推送到服务器

我的队友拉:他们无法编译,因为文件丢失了。 他们都想杀了我。

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

3 个答案:

答案 0 :(得分:10)

在推送之前我总是git status,以确保我在“添加”文件列表中没有遗漏任何内容。

输出很明确:

$ 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

答案 1 :(得分:8)

作为最佳做法,您应该在提交之前检查git status

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

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

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

另一种解决方案:
你也可以为别人写一个别名,所以下次你不会忘记这样做。

很高兴:

设置颜色设置以显示颜色变化,这意味着

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

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

答案 2 :(得分:4)

我喜欢让我的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)}\[\033[01;33m\]\w\[\033[01;32m\]$(__git_ps1) \[\033[01;36m\]$ \[\033[00m\]'