Git学习(3)
2016-07-28 21:35
393 查看
Github
将机器的SSH Key公钥添加到Github(id_rsa.pub文件内容)创建机器SSH Key
ssh-keygen -t rsa -C "xxxxx@xx.xx" //你的邮箱
关联远程仓库
git remote add origin git@server-name:path/repo-name.git
例子
git remote add origin git@github.com:xxx/gitname.git //xxx是github账户名,gitname是远程仓库的名字
推送
git push -u origin master //-u 将本地master分支同远程master分支关联起来
git push origin master //将master分支的最新修改推送到远程
克隆命令
git clone git@host:user/path/xxx.git //host指主机地址
例子:
git clone git@github.com:Gizing/leetcode.git
创建与合并分支
原理
1.所有提交点串成一条时间线,分支是一个指针,指向时间线上的某个点2.HEAD指向分支指针,从而指向某个提交点
3.分支合并即指向同一个提交点
创建分支
git checkout -b dev
相当于以下两条命令
git branch dev //创建dev分支
git checkout dev //切换到dev分支
查看当前分支,当前分支前面有一个‘*’号
git branch
删除当前分支
git branch -d dev //删除dev分支
git branch -D dev //强行删除dev分支
合并指定分支到当前分支(Fast forward模式)
git merge xxx //xxx是指定分支,直接把当前分支指针移到指定分支指针所指的commit上
解决冲突
Git无法自动合并分支时需要手动解决冲突查看分支合并图
git log --graph
分支管理策略
合并默认是Fast forward模式,禁用此模式则merge时生成新的commitgit merge --no-ff -m "your comment" dev //--no-ff表示禁用Fast forward模式,-m是commit描述,dev是指定分支
master分支应该非常稳定,仅用来发布新版本
开发在dev上,发布时再合并到master上
每个人在自己的分支上开发,时不时往dev上合并
Bug分支
临时要去修复bug,暂存当前工作(还没办法提交,只能先暂存)git stash
查看暂存工作清单
git stash list
恢复暂存的工作
git stash pop //从暂存区取出最新的暂存工作,并从暂存区删除
git stash apply xxx //从暂存区取出标识为xxx的暂存工作
git stash drop xxx //将xxx从暂存区删除
git stash clear //清空暂存区
多人协作
远程信息git remote //远程库信息
git remote -v //显示更详细的信息
推送分支
git push origin xxx //xxx是本地要推送的分支,远程仓库默认名称是origin,Git会自己对应分支
git push //将本地所有分支推送到远程仓库
拉取分支
git pull //拉取最新分支,当提示"no tracking information"时说明两个分支对应链接没有创建
与远程关联
git checkout -b xxx origin/xxx //在本地创建和远程对应的分支xxx
git branch --set-upstream xxx origin/xxx //建立本地分支与远程分支的关联
标签管理
原理
标签是版本库的一个快照,是指向某个commit的指针(与分支类似,但标签不能移动)创建标签
先切到需要打标签的分支上git tag tag_name //tag_name是标签名,默认打在HEAD所指的commit上
git tag tag_name commit_id //tag_name是标签名,在指定commit_id上打标签
git tag -a tag_name -m "your comment" //-m 指定标签信息
git tag -s tag_name //用PGP签名标签
git tag //查看所有标签
git show tag_name //查看标签信息
操作标签
推送标签git push origin tag_name //将标签推送到远程,默认远程库名是origin,创建的标签不会自动推送到远程
git push origin --tags //将本地所有标签推送到远程
删除标签
git tag -d tag_name //删除一个本地标签
git push origin :refs/tags/tag_name //删除一个远程标签,得先删除本地的相应标签
相关文章推荐
- poj3666 Making the Grade
- HDD is Outdated Technology(标记有技巧)
- java算法——分解质因数
- thinkphp介绍及访问方式
- jQuery对象与DOM对象
- Svn与Git的区别
- D3.js 之面包圈图
- Android屏幕适配全攻略(最权威的官方适配指导)
- HDU 1213
- android异常收集- java.lang.NumberFormatException
- 商城项目总结(一)
- Linux基础系列4(ls,cp命令详解)
- android相关素材以及网站
- Html与CSS快速入门03-CSS基础应用
- 层叠上下文(The stacking context)
- HelloWorld
- Linux的文件管理(一)
- java算法——打印100以内的素数
- Spring:源码解读Spring IOC原理
- POJ 1204 Word Puzzles AC自动机 -