git-pro九章
2016-02-01 14:46:28 71 举报
AI智能生成
git技能树
作者其他创作
大纲/内容
3. 分支
3.1 何谓分支
git branch branchName
git checkout branchName
3.2 分支的新建与合并
分支的新建与切换
git checkout -b branchName
git branch -d/-D branchName
分支的合并
解决完冲突后可以运用git add来表示编辑完冲突
git mergetool
3.3 分支的管理
git branch --merged/--no-merged
已经或者尚未和当前分支合并的分支
git branch -d branchName会报错是因为这些分支中包含还没有合并进来的工作成果,删除会丢失数据
3.4 利用分支进行开发的workflow
长期分支
特性(短期)分支
3.5 远程分支
用 (远程仓库名)/(分支名) 这样的形式表示远程分支
git push --set-upstream origin jy
第一次把本地分支推送到远程去
git fetch origin同步远程服务器上的数据到本地
git push origin branchName[/remoteBranchName]
push本地分支到远程分支去
在 fetch 操作下载好新的远程分支之后,你仍然无法在本地编辑该远程仓库中的分支。
换句话说,在本例中,你不会有一个新的 serverfix 分支,有的只是一个你无法移动的 origin/serverfix 指针。
git merge origin/branchName
把该远程分支的内容合并到当前分支
git checkout -b localBranchName origin/remoteBranchName
把该远程分支的内容合并到当前分支
git checkout --track origin/serverfix
跟踪远程分支
git checkout -b b newBranch origin/remoteBranch
为本地分支设定不同于远程分支的名字
3.6 分支的衍合
把一个分支的修改整到另一个分支的两种方法
merge
rebase(衍合)
基本的衍合操作
3.7 小结
删除远程分支
git push origin :remoteLocal
7.Git工具
7.1 选择修订版本
git show branchName
在当前分支显示某个分支最后一次提交
git rev-parse branchName
7.2 交互式暂存
7.3 Git工具- 储藏与
7.4 签署工作
7.5 签署
7.6 重写历史
1.起步
git的三种状态
已提交
已修改
暂存区
2.git 基础
2.1 取得项目的Git仓库
git init
git clone cloneAddress
2.2 记录每次更新到仓库
文件只有两种状态
已跟踪
未更新
已修改
已暂存
未跟踪
git status
跟踪新文件
git add ./fileDir/fileName
忽略某些文件
cat .gitignore 查看
.gitignore文件也支持glob匹配模式
git diff查看更改
git diff --staged查看已经暂存(还未commit)的文件里的更改
移除文件
git rm [-f]
git rm --cached fileName
从git仓库移除文件,但是保留在当前工作目录中
git rm * -r删除所有文件(包括目录)
git mv beforeName afterName
2.3 查看提交历史
git log
git log [-p]
查看详细差异
git log [-n]
git log --author=wuxiaolan
git log -p -2 ...(组合)
git log --stat
只显示增改的行数统计
git log --pretty=oneline/short/full/fuller
git log --grep keyword
gitk 查看git历史
git log的可视化版本
2.4 撤销操作
取消已经暂存的文件
git reset HEAD [file]
git reset .撤销上次add
git checkout -- fileName
取消对文件的修改
修改最后一次的提交
git commit --amend
修改最后一次提交
2.5 远程仓库的使用
git fetch会抓取从你上次克隆以来别人上传到此远程仓库中的所有更新
git push origin localBranchName:remoeBranchName
把本地的新建的分支推送到远程去
git remote show origin
服务器有哪些分支本地是没有更新的等等
2.6 打标签
为什么要打标签?
发布某个软件版本的时候
git tag:列出现有的标签
标签的两种类型
轻量级的
git tag tagName
含附注的
git tag -a tagName -m tagDesc
git tag -a tagName sha-1值
给以前的提交补充tag
git push origin tagName
把本地的这个tag提交到远程去
git push origin --tags
把本地所有标签push到远程去
2.7 技巧和窍门
git 后连按两次TAB,能列出所有匹配的可用命令建议
git 命令的部分命令,再按TAB,能自动补全git命令
git co(自动丿配git commit/config,建议直接输git com+TAB
Git别名
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status
8 自定义Git
8.1 配置git
外部的合并与比较工具
格式化与多余的空白字符
8.3 git钩子
提交工作流钩子
pre-commit在键入提交信息前运行
电子邮件工作流钩子
其他客户端钩子
子主题
服务器端钩子
post-receive可以用来更新其他系统服务或者通知用户
0 条评论
下一页