我经常遇到的情况是:
一切都在汇编,我为自己感到骄傲。
我的队友拉:他们无法编译,因为文件丢失了。 他们都想杀了我。
问题是,如何确保我添加了所有需要的文件?
答案 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\]'