1.查看分支/远程分支
# git branch
# git remote -v查看本地已添加的远程分支
# git branch -a查看远程分支
# git branch-vv 查看当前分支版本号详细信息
# git branch -v查看各个分支最后提交信息
# git log--pretty=format:"%H"|head -1 查看当前分支版本
# git log-p  <filename> 查看某个文件的修改历史
# git branch -r查看远程分支
# git branch--merged 查看已经合并到当前分支的分支
# git status 查看本地代码修改状态
 
2.克隆分支
# git clonegit@github.com:lnso/app.git
# git clonegit@github.com:lnso/app.git -b master
 
3.创建分支
# git branchdev 创建分支
# git checkoutdev 切换分支
# gitcheckout-b dev 创建并切换分支
# git checkout-b dev remotes/origin/dev 拉取远程分支
# git checkout-b new-branch branch 基于branch创建新的new-branch分支
 
4.删除分支
# git branch -d dev
# git branch -Ddev 强制删除
# git pushorigin :dev 删除远程分支
# git push -uorigin branch 推送新分支到远程服务器
 
5.合并分支
将分支dev合并到master分支下,合并前要切换到要并入的分支
# git checkout master&& git merge dev
 
6.冲突处理
6.1.正常处理
查看冲突:git status -->手动修改冲突文件 -->标记冲突文件:git add file -->查看冲突文件:git status-->重新提交:gitcommit m "合并分支到dev"
 
6.2.如果希望保留生产服务器上所做的改动,仅仅并入新配置项,处理方法如下
# git stash-->git pull -->git stash pop -->git diff -w +文件名(来确认代码自动合并的情况)
 
6.3.如果希望用代码库中的文件完全覆盖本地工作版本
# git reset --hard&& git pull
 
6.4.针对文件回退本地修改
# git checkout HEADfile/to/restore
 
7.版本表示
HEAD 当前版本
HEAD^ 上一版本
HEAD^^ 上上版本
 
8.设置邮件信息
# git config --globaluser.email "zhaoshuo@miao.cn"
 
9.分支管理
一般情况下,分支可以分为长分支和短分支两种:
长分支即长期任务,如prepub(上线前合并,根据上线列表,从各个分支中集中到该分支,统一部署提测)、master(上线前合并,长期保留一个稳定可用的分支应付紧急任务),长分支经常会落后其他分支一大截,需要适时从其他重要分支进行合并
短分支即临时需求、小bug
 
10.删除文件
# git rm file&& git commit -m "delete file" && git push 
# rm file &&git commit -am "delete file" && git push
# git rm dir -r -f&& git commit -m "delete dir" && git push  
 
11.同步远程服务器
# git pull --rebaseorigin master
 
12.查看提交记录
# git log
# git log -n 查看最近几次
# git log--graph --pretty=oneline 查看所有变更文件
# git showcommit_id 查看某次提交的内容
 
13.版本回退
# git reset--hard HEAD^ 回退到上一版本
# git reset--hard 67b4aj 回退到指定版本
 
14.查看命令历史
# git reflog
 
15.把某次历史提交记录checkout
# git checkoutid号
 
16.创建新分支
# git checkout -b devmaster -->git add . -->git commit -m "add dev" -->gitcheckout master -->git merge dev
 
17. 查看尚未被合并到当前分支的分支
# gitbranch  --no-merged -->git add. -->git commit -m "合并分支修改冲突部分后提交"
 
18.查看暂存区和最近版本的不同
# git diff --cached
 
19.快速切换到上一个分支
# git checkout -
 
20.删除已经合并到 master 的分支
# git branch --mergedmaster | grep -v '^\*\|  master' | xargs -n 1 git branch -d
 
21.查看远程分支和本地分支的对应关系
# git remote showorigin
 
22.远程删除了分支本地也想删除
# git remote pruneorigin
 
23.重命名本地分支
# git branch -m<new-branch-name>
 
24.查看标签
# git tag
# git describe--tags --abbrev=0 查看当前分支的最近的tag
# git tag -ln 查看标签详细信息
# git tag tagID本地创建标签,最近一次的commit上
# git tag -atagID -m "v1.0" commit-id 指定commit-id上打tag
# git pushorigin <local-version-number> 推送标签到远程仓库
# git pushorigin --tags 一次性推送所有标签到远程仓库
# git tag -dtag-name 删除本地标签
# git pushorigin :refs/tags/tag-name 先删除本地,在删除远程标签
# git checkout-b branch_name tag_name 切回到某一标签
# git checkoutfile-name 放弃工作区修改
# git checkout. 放弃所有修改
# git rev-list-n 1 HEAD -- <file_path> 恢复删除的文件
 
25.远程库存在test分支,本地无法pull/checkout到test分支
git branch -a
git checkout -b test
git pull origin test
git branch --set-upstream-to=origin/test test
git pull
 
26.强制覆盖本地代码,保持与远程代码库一致
git fetch --all //从另一个存储库下载对象和引用
git reset --hard origin/master //放弃本地修改
git pull //开始更新
整合:git fetch --all&& git reset --hard master && git pull