1.强制同步为远程的代码
远程仓库回退了commit的情况下(第2条描述之情况),强制同步远程的代码到本地
#更新远程最新的所有代码,但是不merge或者rebase
git fetch --all
#直接reset到master,也就把刚才fetch的更新了
git reset --hard origin/master
2.回退版本
#回退本地版本
git reset --hard <commit_id>
#强制提交到服务器
git push origin HEAD --force
3.新建分支和远程分支
#新建本地分支
git checkout -b branch_name
#推送到远程
git push origin branch_name
#设置跟踪(默认的git pull和git push,不然需要 git push origin branch_name来更新)
#如果第一次推送时,使用git push -u origin branch_name,则可省略这一步
#git push --set-upstream origin branch_name
git branch -u origin/branch_name
#协作者使用
#更新远程branch list
git fetch origin
#更新远程的新分支到本地,并建立本地分支
git checkout -b branch_name origin/branch_name
#删除远程分支(传送一个空指针到远程分支,相当于删除)
git push origin :branch_name
#删除远程分支之后,其他机器同步
git fetch -p
4.放弃当前工作区所有的修改
git checkout <filename>
git checkout .
5.设置当前branch自动提交的远程仓库
git branch --set-upstream-to=origin/<branch> master
6.保存密码,不用多次输入
git config --global credential.helper store
Linux/Unix下设置失效时间:
#默认15分钟
git config --global credential.helper cache
git config --global credential.helper 'cache --timeout=3600'
Windows下设置
#参考http://*.com/questions/11693074/git-credential-cache-is-not-a-git-command
#没有配置成功,待测试
git config --global credential.helper wincred
7.二进制文件冲突的解决
git pull
#使用对方的文件覆盖自己的
git checkout --theirs YOUR_BINARY_FILE
#使用自己的文件覆盖对方的
// git checkout --ours YOUR_BINARY_FILE
git add YOUR_BINARY_FILE
git commit -m 'merged with the remote repos.'
git push