全局配置 --global
配置用户名和邮件
git config --global user.name "yourname"
git config --global user.email "[email protected]"
配置diff工具
git config --global diff.tool meld
git config --global difftool.prompt false
用diff工具查看时用difftool命令,git difftool file.txt
.git目录下的内容
查看HEAD文件内容(指向当前所在的分支)
git symbolic-ref HEAD,这个HEAD就是.git/根目录下的HEAD
设置HEAD文件内容
git symbolic-ref HEAD refs/heads/mybranch
相当于git checkout mybranch
本地分支保存在目录refs/heads/
远程引用目录:refs/remotes/origin/
refs/remotes/origin/HEAD指向最后一次远程提交的sha-1值的引用,远程引用和本地分支的区别是它们不能被checkout
git diff的用法
git diff是查看working tree与index file的差别的。
git diff –cached是查看index file与commit的差别的。
git diff HEAD是查看working tree和commit的差别
git reset 中--hard, --soft, --mixed的区别
git reset --hard HEAD //--hard表示将working tree和index file都撤销到以前状态 ,--soft表示只撤销commit,而保留working tree和index file的信息,--mixed会撤销commit和index file,只保留working tree的信息
fetch的用法
git-fetch用于从另一个reposoitory下载objects和refs。
命令格式为:git fetch <options> <repository> <refspec>…
其中<repository>表示远端的仓库路径。
其中<refspec>的标准格式应该为<src>:<dst>,<src>表示源的分支,如果<dst>不为空,则表示本地的分支;如果为空,则使用当前分支。
git fetch /home/bob/myrepo master:bobworks :用于从bob的工作目录的master分支下载objects和refs到本地的bobworks分支中
常量的使用方法
HEAD:表示最近一次的commit。
MERGE_HEAD:如果是merge产生的commit,那么它表示除HEAD之外的另一个父母分支。
FETCH_HEAD:使用git-fetch获得的object和ref的信息都存储在这里,这些信息是为日后git-merge准备的。
ORIG_HEAD:保存父节点的SHA-1值
HEAD^:表示HEAD父母的信息
HEAD^^:表示HEAD父母的父母的信息
HEAD~4:表示HEAD上溯四代的信息
HEAD^1:表示HEAD的第一个父母的信息
HEAD^2:表示HEAD的第二个父母的信息
COMMIT_EDITMSG:最后一次commit时的提交信息。