一. 分支查看
$ git branch // 显示本地分支
* master
$ git branch -a // 显示本地和远程分支
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
git remote update origin --prune // 更新远程分支的本地列表
git fetch origin --prune // 更新本地分支情况,远程和本地不同情况下使用
git remote show origin // 查看本地分支与远程对应关系
二. 分支创建
$ git branch 分支名称 // 本地创建分支
$ git push origin 本地分支:远程分支 // 本地有分支而远程无关联分支时
$ git checkout --track origin/分支名 // 远程有分支而本地无关联分支时,本地会建立一个与远程同名的分支并进行关联
三. 分支切换
$ git checkout 分支名
四. 分支删除
$ git branch -d 分支名 // 本地分支删除
$ git push origin :远程分支
五. 分支合并
// 当本地分支关联的远程分支更新于当前本地库
$ git fetch origin master:tmp // 从origin远程master分支上拉去到本地分支tmp中 :tmp可省略
$ git diff tmp // 对比本地当前分支和分支tmp的区别
$ git merge tmp // 合并名为tmp的分支到当前分支
$ git pull origin master // 合并远端的origin中master分支到本地 等价于git fetch + git merge
// 建立当前分支与远程分支的映射关系
$ git branch -u origin/addFile
或者使用命令:
$ git branch --set-upstream-to origin/addFile
六. 取消git add操作提交的缓存
$ git rm --cached [file]
七. git checkout恢复文件到工作区
// 从最后一次提交的版本库中恢复文件
$ git checkout HEAD -- test.java
// 从刚刚add到缓存区恢复文件
$ git checkout -- test.java
// 从历史版本中恢复文件
// 上面的commit-id是历史版本的SHA-1编码,可以通过git reflog查看。
$ git checkout commit-id -- test.java
// 要恢复历史版本中的所有文件
$ git checkout commit-id -- .
八. git 账号用户名
查看用户名和账户
git config user.name
git config user.email
修改用户名和账户
git config --global user.name "Your_username"
git config --global user.email "Your_email"
九. git本地保存账号密码,防止每次都需要输入
// 在~/.gitconfig目录下多出一个文件,用来记录你的密码和帐号
git config --global credential.helper store
// 之后再输入一次正确密码即可一直保存
十. 提交 git push origin 本地分支:远程分支
如果远程分支被省略,如上则表示将本地分支推送到与之存在追踪关系的远程分支(通常两者同名),如果该远程分支不存在,则会被新建
git push origin master
如果省略本地分支名,则表示删除指定的远程分支,因为这等同于推送一个空的本地分支到远程分支,等同于 git push origin --delete master
git push origin :refs/for/master
如果当前分支与远程分支存在追踪关系,则本地分支和远程分支都可以省略,将当前分支推送到origin主机的对应分支
git push origin
如果当前分支只有一个远程分支,那么主机名都可以省略,形如 git push,可以使用git branch -r ,查看远程的分支名
git push
十一. commit操作
查看commit历史
git log
保留本地代码删除多个commit,恢复到add、modiefy、delete状态
git reset --mixed HEAD~2 // 数字代表撤销到倒数第几个commit