您的位置:首页 > 其它

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时生成新的commit

git 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    //删除一个远程标签,得先删除本地的相应标签
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: