设置环境变量GIT_CURL_VERBOSE=1可以让git指令输出详细信息
删除多余空格
git rebase HEAD~ --whitespace=fix
设置代理
git config --global http.proxy ****
git config --global https.proxy ****
git config --global --unset https.proxy 取消代理
设置用户
git config --global user.name "****"
git config --global user.password "*****"
git config --unset user.password 重置密码
检查历史版本
特定文件的变动历史 git log -p file_path
查看特定commit时点文件内容 git show REVISION:path/to/file
本地分支与远程分支
建立关联 git branch -u [remote_branch] [local_branch] 其中-u是--set-upstream-to的缩写
取消关联 git branch --unset-upstream
拉取远程代码 git pull <remote_host> <remote_branch>:<local_branch> 可以省略分支,这样自动更新本地追踪的远程分支
向gerrit推送更新 git push [repo name] HEAD:refs/for/[branch name]
例如git push origin HEAD:refs/for/next 将本地HEAD所在分支推送到origin端的next分支,注意其中的refs/for是必须的,如果省略git会默认解析成refs/head,而对gerrit来说推送到refs/head/***意味着不经过审核直接提交。
“origin” 是运行 git clone 时默认的远程仓库名字。 如果运行 git clone -o booyah,那么默认的远程分支名字将会是 booyah/master。
如果省略HEAD:部分,则自动选择本地同名分支进行推送
将远程分支同步到本地 git remote update origin --prune
使用gvim提交
git config --global core.editor "gvim -f"
递归忽略文件
在.gitignore中用"**"可以代表任意路径,例如"**/*.swp"可以忽略工程根目录和任意子目录下的swp后缀文件。
彩色信息
git config --global color.ui true
git push免密码
如果远程仓库是git url,需要用ssh key。如果远程仓库是http url,在用户主目录创建.git-credentials,写入
https://{username}:{password}@{仓库网址}
然后执行git config --global credential.helper store