git基本操作整理

1.提交本地仓库
$ git status //查看工作区和暂存区文件状态
$ git add 文件名或目录名,若提交全部,可直接git add . //和svn有区别,此步骤必须执行
$ git conmmit -m “提交日志信息”
注意:
若需要补充提交,即与上一次提交合并为一条提交记录,使用:
$ git commit –-amend –m “新提交日志信息”
若需要与上一次提交形成同一条gerrit审核记录,则使用
$ git commit –-amend
提示:使用repo管理的多个仓库,实质提交可直接采用上述方法,在单库中提交即可。
2.提交至gerrit审核
$ git push origin HEAD:refs/for/分支名
3.提交至远程仓库器配置库
注意:超过1G的数据,不需要提交至gerrit审核,找配置管理开通权限,直接提交至远程仓库器配置库。
$ git push origin 分支名
4. 作废本地修改
4.1. 指定文件
git checkout 指定文件
4.2. 全部文件
git checkout *
4.3. 删除本地配置库未受控文件
git clean
-n 显示将要删除的文件和目录
-f 删除文件
-df 删除文件和目录
5.更新至远程仓库中最新版本
5.1. 本地未修改
同一分支:
$ git fetch origin
$ git rebase origin/分支名
服务器上所有分支:
$ git pull –rebase
5.2. 本地有修改,作废
$ git checkout *
$ git pull –rebase
5.3. 本地有修改暂不需要提交本地配置库,只需要更新远程仓库器数据
$ git stash //先保存本地修改
$ git stash list //可查看本地修存的信息
$ git fetch origin
$ git rebase origin/分支名 //更新远程仓库器数据至本地
$ git stash pop //将本地修改调出来
此时,会自动合并,若有冲突,需要手动解决冲突
$ git staus //both modify 显示的是有冲突的文件
冲突标识的====== »>为服务器上数据,===================== «« 为本地修改内容,可配合TortoiseGit比较两个版本的文件
解决完冲突后,使用:
$ git add –u //通知已经解决完冲突
继续修改
5.4. 本地有修改需要提交至本地配置库,并更新远程仓库器数据
先按 上述“提交本地仓库”
$ git fetch origin
$ git rebase origin/分支名
此时会自动合并,若有冲突,手动解决冲突后
$ git add –u
$ git rebase –continue
6.更新至远程仓库中历史版本
6.1. 本地未修改
$ git fetch origin
$ git rebase origin/分支名
$ git log //查找对应的commit id
$ git checkout commit id
6.2. 本地修改,作废
$ git checkout *
$ git fetch origin
$ git rebase origin/分支名
$ git log //查找对应的commit id
$ git checkout commit id
6.3. 本地有修改暂不需要提交本地配置库,只需要更新远程仓库器数据
$ git stash //先保存本地修改
$ git stash list //可查看本地修存的信息
$ git fetch origin
$ git rebase origin/分支名 //更新远程仓库器数据至本地
$ git checkout
使用历史版本完成后,若需要恢复本地修改,直接使用
$ git stash pop <指定的stash的某个版本>
6.4. 本地有修改需要提交至本地配置库,并更新远程仓库器数据
先按 上述“提交本地仓库”
$ git fetch origin
$ git rebase origin/分支名
$ git checkout
7.更新至本地配置库最新版本
7.1. 本地未修改
$ git checkout HEAD
7.2. 本地有修改,本地修改作废
$ git checkout –f HEAD
7.3. 本地有修改,本地修改不作废
$ git stash
$ git checkout HEAD //切换至最新版本
如果需要调出已修改的内容
$ git stash pop //可先使用git stash list查看 id
8.更新至本地配置库指定版本
8.1. 本地未修改,更新至指定版本
$ git log //显示版本信息,找到对应的版本号 (commit id)
$ git checkout 40位或前7位的提交版本号
8.2. 本地有修改,作废
$ git checkout -f HEAD
8.3. 本地有修改,不作废
方法一:
$ git stash //保存本地修改
$ git checkout
方法二:
将本地修改硬拷贝备份,再使用
$ git checkout
9.查看日志
9.1. 查看所有日志
$ giit log
9.2. 查看文件修改列表
$ git log –name-status
10.查看差异
10.1. 查看本地与本地配置库的差异
$ giit diff HEAD
10.2. 查看本地与暂存区的差异
$ giit diff
10.3. 查看本地与远程仓库的差异
$ git fetch origin
$ git diff origin/分支名
10.4. 查看暂存区与配置库的差异
$ giit diff –cache
10.5. 查看本地配置库与远程仓库的差异
$ git fetch origin
$ git diff HEAD..origin/分支名
11. 撤销最新版本
11.1. 撤消本地修改
$ git checkout <文件名或目录名或*>
11.2. 撤消本地配置库最新提交,保留工作区的最新修改
$ git reset –-mixed HEAD
11.3. 撤消本地配置库最新提交及工作区的最新修改
$ git reset –-hard HEAD

12. 撤销配置库中历史某个版本之后的版本
注意:历史的某个版本之后的并未提交至远程仓库的版本,若历史的版本已提交至远程仓库将后面介绍
12.1. 撤消本地配置库某版本之后的提交,保留工作区的最新修改
$ git log //找到对应版本号commit id
$ git reset –-mixed
12.2. 撤消本地配置库某个版本之后的提交,不保留工作区的最新修改
$ git log //找到对应版本号commit id
$ git reset –-hard
13. 撤销配置库中指定的某个版本
$ git log //查看版本号commit id
$ git revert
此时将形成一条新提交记录。
14. 分支常用操作
14.1. 查看分支
$ git branch //查看本地分支,*表示当前分支
$ git branch –-all //查看所有分支
14.2. 切换分支,若本地无修改
$ git branch //查看对应分支
$ git checkout 分支名 //可使用tab键获取
14.3. 切换分支,若本地有修改暂不提交
$ git stash //查看对应分支
$ git checkout 分支名 //可使用tab键获取
14.4. 切换分支,若本地需提交
按上述要求先提交至本地配置库,再切换
git branch //查看对应分支
$ git checkout 分支名 //可使用tab键获取
14.5. 创建新分支
$ git checkout 分支名或commit id//需要建立的基准分支或基准版本
$ git checkout –b 新的分支名 //创建为本地分支并切换至对应分支
14.6. 创建远程分支
本地创建的分支可推送至服务器端,需要配置管理开通对应权限。
或直接由配置管理在gerrit上建立分支。
14.7. 创建本地分支与远程分支建立跟踪关系
只有建立了分支与远程分支关系,才可以将本地的修改推送至远程服务器
默认clone后,本地分支名与远程同名分支已建立了跟踪。
若需要新建立分支,并与远程建立跟踪关系
$ git checkout –b <本地分支名> <远程分支名> 如:
$ git checkout –b tmp origin/develop //本地建立 tmp分支,并与远程分支建立跟踪关系
14.8. 上传分支
按上述提交,在对应的分支提交至本地配置库或远程仓库。
默认提交的是本地分支对应的建立了跟踪关系的分支上。
14.9. 分支间合并
$ git fetch
$ git checkout 分支名 //切换至需要合并至的分支
$ git merege orogin/分支名
会自动合并,若自动合并成功,使用
$ git commit –-amend //补一条changeid
若冲突,则需要手动解决冲突。再使用
$ git add –u //通知已解决冲突
$ git commit –m “提交日志” //提交解决冲突的

你可能感兴趣的:(git基本操作整理)