zoukankan      html  css  js  c++  java
  • Git学习笔记(二)

    一、创建远程仓库(GitHub)

    1.GitHub网站地址:https://github.com/,这个网站就是提供Git仓库托管服务的,所以,只要注册一个GitHub账号,就可以免费获得Git远程仓库。

    2.由于本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以,需要如下设置:

    第1步:创建SSH Key。在用户主目录下(例如:C:UsersAdministrator),看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:

    $ ssh-keygen -t rsa -C "wheeky@163.com"
    

    你需要把邮件地址换成你自己的邮件地址,然后一路回车,全部使用默认值即可;

    如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。

    第2步:登陆GitHub,打开“Account settings”,“SSH Keys”页面,然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容,最后点击“Add Key”按钮完成。

    说明:为什么GitHub需要SSH Key呢?因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。当然,GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。

    二、添加远程库

    1.登录GitHub网站,并按网站要求创建一个新的仓库;

    2.根据GitHub网站提示,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。

    3.本地仓库与GitHub上相应的仓库建立关联,代码如下:(git@github.com:wheeky/ZControls.git为我新建的仓库路径)

    $ git remote add origin git@github.com:wheeky/ZControls.git
    

    添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。

    4.把本地库的内容推送到远程库上,用git push命令,实际是把当前分支master推送到远程。

    $ git push -u origin master
    

    由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令(不用带-u参数)。

    当你第一次使用Git的clone或者push命令连接GitHub时,会得到一个警告,这是因为Git使用SSH连接,而SSH连接在第一次验证GitHub服务器的Key时,需要你确认GitHub的Key的指纹信息是否真的来自GitHub的服务器,输入yes回车即可。

    5.通过GitHub上的仓库来克隆出新的本地仓库,代码如下:(克隆出新的本地仓库文件夹为:ZControls)

    $ git clone git@github.com:wheeky/ZControls.git
    

    Git支持多种协议,默认的git://使用ssh,但也可以使用https等其他协议,使用https除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令,但是在某些只开放http端口的公司内部就无法使用ssh协议而只能用https

    三、分支管理

    1.分支的作用:创建一个属于你自己的分支,别人看不到,还继续在原来的分支上正常工作,而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样,既安全,又不影响别人工作。

    2.创建分支(dev):

    $ git checkout -b dev //git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:
    $ git branch dev
    $ git checkout dev
    

    git branch命令查看当前分支,git branch命令会列出所有分支,当前分支前面会标一个*号。

    用git checkout命令切换分支,如下代码,切换到master分支:

    $ git checkout master
    

    3.合并分支:(用git merge命令合并指定分支到当前分支)

    $ git merge dev //默认启用Fast forward模式,若合并后再删除分支,则删除分支后,会丢掉分支信息
    $ git merge --no-ff -m "merge with no-ff" dev //使用--no-ff参数,表示禁用Fast forward模式,Git就会在合并时生成一个新的commit,这样,从分支历史上就可以看出分支信息。  

    4.删除分支:

    $ git branch -d dev //若需要强制删除,则-d参数应改变为大写,如:git branch -D dev

    5.查看分支合并情况:

    git log --graph
    

     6.临时隐藏工作区:(常见的场景是,当我们需要临时处理其它事情【如:解决BUG】时而不得不暂时中断目前的主要开发任务)

    $ git stash //隐藏目前工作区
    $ git checkout master //切换到需要建立临时分支的分支,比如:master
    $ git checkout -b issue-101 //建立并切换到临时分支,issue-101
    $ git add file //添加到暂存区
    $ git commit -m "fix bug 101" //提交到临时分支仓库
    $ git checkout master //回到master分支
    $ git merge --no-ff -m "merged bug fix 101" issue-101 //合并临时分支,这里禁用fast foward模式,保留提交记录以便日后可查或恢复
    $ git branch -d issue-101 //删除临时分支
    

    查看被隐藏的工作区信息:

    $ git stash list
    

    恢复工作区:

    $ git stash pop //相当于以下两条命令
    $ git stash apply //恢复工作区
    $ git stash drop //清除隐藏区
    

     7.查看远程库:

    $ git remote
    $ git remote -v //加上-v参数可以查看详细信息
    

    8.推送分支到远程库分支:

    $ git push origin 分支名
    

    9.创建本地分支并关联远程分支:

    $ git checkout -b 分支名 origin/分支名 //origin/dev为远程分支路径
    $ git branch --set-upstream 分支名 origin/分支名 //若本地已有分支,可通过该命令来关联远程分支

    10.解决冲突:

      10.1若是本地多分支之前合并产生冲突,可以先用git status命令查看原因,并依据提示修改相应的文件后,再重试即可;

      10.2若是多人协作,向远程推送提交时产生冲突,则需先用git pull把最新的提交从origin/dev抓下来,然后,在本地合并,解决冲突,再推送,如下:

    $ git pull //从远程获取分支
    $ git commit -m "marge files" //本地更新合并
    $ git push origin dev //推送提交到远程分支
  • 相关阅读:
    Oracle 修改带数据的字段类型
    Oracle的主键约束、唯一约束与外键约束
    Oracle 唯一 索引 约束 创建 删除
    Oracle 在Drop表时的Cascade Constraints
    iTunes备份注意
    谈判的四种风格
    求平均速度
    网站推荐的代码自动生成软件实际使用感触
    DOTA游戏相关的文章
    魔兽争霸3不能弹出输入法原因
  • 原文地址:https://www.cnblogs.com/zuowj/p/4555229.html
Copyright © 2011-2022 走看看