当你正在写一段代码的时候,突然有其他事请需要打断你编码的过程,此时使用git的正确姿势应该是:
git stash
把当前未提交的改动“复制”到另一个地方暂存起来,使用git status命令可以发现
On branch master
nothing to commit, working directory clean
待要恢复的时候执行:
git stash pop
当你正在写一段代码的时候,突然有其他事请需要打断你编码的过程,此时使用git的正确姿势应该是:
git stash
把当前未提交的改动“复制”到另一个地方暂存起来,使用git status命令可以发现
On branch master
nothing to commit, working directory clean
待要恢复的时候执行:
git stash pop
当我们使用vim的时候总会有临时文件产生,例如.swp或者~。在以前粗放型的git使用中(使用git add –all命令),会把这些临时文件或者编译所产生的中间变量都加入到stage中。其实这种并不是一个好的(起码是精致的)git使用习惯。恰当的做法是使用.gitignore文件。
.gitignore文件有自己的格式:
以下转自刘大帅的解读与gitignore Manual Page
所谓的 glob 模式是指 shell 所使用的简化了的正则表达式。星号(*)匹配零个或多个任意字符;[abc]匹配任何一个列在方括号中的字符(这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c);问号(?)只匹配一个任意字符;如果在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配(比如[0-9]示匹配所有0到9的数字)。
一个.gitignore例子:
#此为注释-将被git忽略
#忽略所有.a结尾的文件
*.a
#但lib.a除外
!lib.a
#仅仅忽略项目根目录下的TODO文件,不包括subdir/TODO
/TODO
#忽略build/目录下的所有文件
build/
#会忽略doc/notes.txt,但不包括doc/server/arch.txt
doc/*.txt
#ignore all .txt files in the doc/ directory
doc/**/*.txt
两个星号连在一起在路径中有特殊的含义:
另外,gitignore.io可以帮你自动生成常规的.gitignore文件。
一般情况下,git配置过程中第一步就是配置用户名和邮箱:
git config –global user.name “sean MA”
git config –global user.mail “ma.xiaoyuan.mail@gmail.com”
但以前一直没有深究为什么要用global参数。
[以下引用自git-scm]
git 使用一系列的配置文件来存储你定义的偏好,它首先会查找/etc/gitconfig文件,该文件含有对系统上所有用户及他们所拥有的仓库都生效的配置值,如果传递system参数给git config命令,git会读写这个文件。
接下来git会查找每个用户的~/.gitconfig文件,你能传递global项让git读写该文件。
最后git会查找由用户定义的各个库中git目录下的配置文件(.git/config),该文件中的值只对属主库有效。 以上阐述的三层配置从一般到特殊层层推进,如果定义的值有冲突,以后面层中定义的为准,例如:在.git/config与/etc/gitconfig的较量中,.git/config得了胜利。当然你也可以直接手动编辑这些配置文件。