git相关记录

git config http.postBuffer 524288000

git init --bare 创建一个纯仓库
git clone url

一,多人开发流程
1,创建本地开发分支
git checkout -b develop
git checkout -b me

2,提交更新到服务器
在me分支提交修改内容
git commit 
git checkout develop
git pull --rebase origin develop
git merge me --no-ff   / git checkout me | git rebase develop | git checkout develop | git merge me
git push origin develop
git checkout me
git rebase develop

3,更新服务器修改内容
在me分支提交修改内容
git checkout develop
git pull --rebase origin develop
git checkout me
git rebase develop

4,其它命令
git reset --hard HEAD^ 撤销最后一次提交,该次提交所有内容会丢失,慎用.HEAD^^最后两次
git reset HEAD^ 撤销最后一次提交,但该次提交内容存在work tree中.清除了commit和index
git revert 还原到某个版本,之前提交会保留.

5,永久删除文件

## 注意Windows下用双引号
git filter-branch --index-filter 'git rm -r --cached --ignore-unmatch path/to/your/file' HEAD
git push origin master --force
rm -rf .git/refs/original/
git reflog expire --expire=now --all
git gc --prune=now
git gc --aggressive --prune=now
6,解决Windows Git Bash中文乱码问题
/etc/gitconfig
[gui]
    encoding = utf-8 #代码库统一用urf-8,在git gui中可以正常显示中文
[i18n]
    commitencoding = GB2312 #log编码,window下默认gb2312,声明后发到服务器才不会乱码
    logoutputencoding = utf-8 #解决日志显示为的问题
[svn]
    pathnameencoding = GB2312 #支持中文路径
/etc/git-completion.bash
alias ls='ls --show-control-chars --color=auto'  #ls能够正常显示中文
/etc/inputrc
set output-meta on   #bash中可以正常输入中文
set convert-meta off
/etc/profile
export LESSCHARSET=utf-8   #$ git log 命令不像其它 vcs 一样,n 条 log 从头滚到底,它会恰当地停在第一页,按 space 键再往后翻页。这是通过将 log 送给 less 处理实现的。以上即是设置 less 的字符编码,使得 $ git log 可以正常显示中文。

二,配置文件
.gitconfig
[core]
	quotepath = false
[i18n]
	logoutputencoding = utf-8
	commitencoding = gbk
[alias]
        co = checkout
        ci = commit
        st = status
        br = branch
        re = remote
        di = diff
        rb = rebase
        l = log --oneline --decorate -12 --color
        ll = log --oneline --decorate --color
        lc = log --graph --color
        dci = dcommit
[gui]
	encoding = utf-8
[svn]
	pathnamecoding = GB2312

免密码访问git库
windows 用户目录下创建_netrc
非windows 用户目录下 创建 .netrc,设置权限 600
machine www.github.com
login username
password password

三,常用命令
清理git库中历史中提交的大文件.

删除历史提交中指定文件
git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch */target/*' --prune-empty --tag-name-filter cat -- --all
git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch *.iml' --prune-empty --tag-name-filter cat -- --all

清理删除后空间
rm -rf .git/refs/original/
git reflog expire --expire=now --all
git gc --prune=now
git gc --aggressive --prune=now





你可能感兴趣的:(git)