git mv from to直接把文件换掉
git commit -a不用自己手动更新在库中暂存的文件
git log --pretty="oneline/short/full/fuller"
git log --pretty=format:"%h - %an, %ar : %s"
选项 说明
%H 提交对象(commit)的完整哈希字串
%h 提交对象的简短哈希字串
%T 树对象(tree)的完整哈希字串
%t 树对象的简短哈希字串
%P 父对象(parent)的完整哈希字串
%p 父对象的简短哈希字串
%an 作者(author)的名字
%ae 作者的电子邮件地址
%ad 作者修订日期(可以用 -date= 选项定制格式)
%ar 作者修订日期,按多久以前的方式显示
%cn 提交者(committer)的名字
%ce 提交者的电子邮件地址
%cd 提交日期
%cr 提交日期,按多久以前的方式显示
%s 提交说明
git 提交信息错了
git commit --amend重新修改提交信息
git 更新修改文件了,提交了暂存,取消暂存方式
git reset HEAD <file>
TAG使用
git tag -a v1.4 -m 'my version 1.4'
git show <tagname>
如果有自己的私钥,可以用GPG签署标签
git tag -s v1.4 -m 'my version 1.4'
默认情况下,push不会往服务器推送标签
git push --tags推送所有标签
git push origin <tagname>单独推送标签
技巧:
git编译目录中contrib/completion下面有个git-completion.bash
拷贝到~/.git-completion.bash
修改.bashrc加入
source ~/.git-completion.bash
git 敲命令时候,就可以自动补全命令了
分支:
创建新的分支
git branch <branchname>
git checkout <branchname>
git checkout -b <branch> 新建并切换到新的分支
git执行了commit 没有push,取消commit,并返回diff状态
打成tarball:
$ git archive -v --format=tar “tagname/branch name” |bzip2 > ../*.tar.bz2
gitosis使用
如果设置/home/git/目录权限为777的话,那么git clone的时候会提示要输入密码,必须设置/home/git目录权限为755
如果要gitweb可以看到project只需要设置新添加的project目录到权限其他用户可以读,就ok。
安装httpd, gitweb
在git目录下面make GITWEB_PROJECTROOT="/home/git/repositories/" prefix=/usr/local/ gitweb/gitweb.cgi
cp -Rf gitweb /var/www下面
在/etc/httpd或者是/etc/apache的conf.d/目录中写git.conf
如下
alias /git /var/www/gitweb
<VirtualHost *:80>
ServerName gitserver
DocumentRoot /var/www/gitweb
<Directory /var/www/gitweb>
Options ExecCGI +FollowSymLinks +SymLinksIfOwnerMatch
AllowOverride All
order allow,deny
Allow from all
AddHandler cgi-script cgi
DirectoryIndex gitweb.cgi
</Directory>
</VirtualHost>
gitweb可以不用project_list直接修改权限其他用户可以读就可以了。