Git学习(3)

来源:互联网 发布:c 网络应用编程 编辑:程序博客网 时间:2024/05/18 03:14

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    //删除一个远程标签,得先删除本地的相应标签



0 0
原创粉丝点击