git文件的状态
git status用来观察文件状态
tracked/untracked
已经被git管理的,不管有无更新,都是tracked状态
与git无关的文件,属于untracked状态,可以用git add将一个文件变成tracked状态,文件同时进入了staging area.
下面的状态都是tracked文件才有的
modified/unmodified 在工作区里面已经修改的/没有修改的 文件
staged 用git add加入到staging area中的文件。
git config的范围
--system 会配置在/etc/gitconfig文件中
--global 会写在~/.gitconfig文件中
当前项目目录 .git/config文件
后者会覆盖前者,如果变量名相同的话。
设置git默认编辑器
git config --global core.editor emacs
查看git设置
git config --list
忽略一些目录
在当前项目中创建.gitignore文件,里面加上
target/
build/
忽略一些文件
同样在.gitignore文件中加上:
*.*~
我的项目中同时有Java Maven项目和C++ CMake项目,这下编译产生的目录直接被忽略掉了。很方便啊!
head是什么?
head就是一个指针,指向当前你正在用的branch.
可以这样来看head的指向:
$ cat .git/HEAD ref: refs/heads/master
git checkout
Git的checkout有两个作用:
1,在不同的branch之间进行切换,例如'git checkout new_branch'就会切换到new_branch的分支上
2,是还原代码的作用,例如'git checkout js/flow.js'会将flow.js文件从上一个已提交的版本中更新回来,未提交的内容全部会丢失
git checkout -f
有时侯用git pull会出现错误信息:
Please, commit your changes or stash them before you can merge
可以用git checkout -f ,这样任何本地的修改都会被抛弃。
然后git pull成功。
git 查看日志
查看某个文件的提交日志可以执行
git -p filename
原文链接:http://blog.csdn.net/sheismylife/article/details/7583363