1. 忽略特殊文件
有些时候,你必须把某些文件放到Git目录中,但又不能提交他们,比如保存了数据库密码的配置文件等等。每次git status
都会显示Untracked files ...
。这个问题解决起来很简单,在Git工作区的根目录下创建一个特殊的.gitignore
文件。
注意:.gitignre
文件本身应该提交给Git管理,这样可以确保所有人在同一项目下使用相同的.gitigore
文件。
示例:
# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
replay_pid*
示例文件:https://github.com/github/gitignore
。
忽略文件的原则是:
忽略操作系统自动生成的文件,比如缩略图等。
忽略编译生成的中间文件、可执行文件等,比如
java
编译产生的.class
文件。忽略你自己带有敏感信息的配置文件,比如存放口令的配置文件。
如果你想添加某些文件,但是发现添加不了,可以排查是不是这种类型的文件被忽略掉了。比如添加了App.class
文件。
$ git check-ignore -v App.class
.gitignore:2:*.class App.class
发现是因为.gitignore
的第二行.class
给忽略掉了。
如果确实要添加,可以这样改造.gitignore
文件。
# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
replay_pid*
# 不排除.gitignore和App.class:
!.gitignore
!App.class
使用!
+文件名的方式排除掉忽略。
这样就可以正常添加了。
2. 配置别名
对于经常使用,而写起来难度较大的命令,我们可以配置别名
$ git config --global alias.st status
$ git config --global alias.co checkout
$ git config --global alias.ci commit
$ git config --global alias.br branch
配置完别名之后,以后的提交就可以这样写
$ git ci -m "bala bala bala..."
甚至你还可以这样写,将你需要起别名长命令都可以写进来。
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
--global
参数是全局参数,也就是这些命令在这台电脑的所有Git仓库下都有用。当前用户的Git配置文件放在用户主目录下的一个隐藏文件.gitconfig
中:
如果不使用--global
,那么只是对当前仓库生效,每个仓库的Git配置文件都放在.git/config
文件中
对于大多数情况,使用别名的方式更好,推荐。
3. 如何参与一个开源项目
比如bootstraps项目。https://github.com/twbs/bootstrap
。
点“Fork”就在自己的账号下克隆了一个bootstrap
仓库,然后,从自己的账号下clone:
这个时候就可以拉取到本地进行修改提交。注意修改提交还是在自己的仓库。
之后可以通过pull request
推送给作者,由作者选择是否使用代码。