zoukankan      html  css  js  c++  java
  • git--github使用

    什么是github

    GitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名GitHub。

    GitHub于2008年4月10日正式上线,除了Git代码仓库托管及基本的 Web管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。目前,其注册用户已经超过350万,托管版本数量也是非常之多,其中不乏知名开源项目 Ruby on Rails、jQuery、python 等。

    我们可以把我们本地的代码推送到github上面,如果要推送到github上,我们需要有自己的github账号,还要建一个仓库

    创建仓库

    现在我们都有自己的github账号了,创建了一个仓库后跳转页面如下

    这里我把它分为两个区域,第一个区域是你本地没有进行版本控制,执行的命令

    第二个是你本地已经有文件,并且通过git进行了版本控制,使用下面的命令推送到github上。

    其中的origin是我们给后面的地址起的别名,大家可以自定义

    推送到github

    # 给远程仓库起别名
    git remote add origin 远程仓库地址
    
    # 推送到远程分支
    git push -u origin 分支名称

    我们本地已经有了文件夹,并且已经被git管理了起来,所以我们执行第二条命令,我这里选择的是https的

    # git remote add origin https://github.com/liuzouzou/git_demo.git
    
    # git push -u origin master
    Enumerating objects: 22, done.
    Counting objects: 100% (22/22), done.
    Delta compression using up to 4 threads.
    Compressing objects: 100% (21/21), done.
    Writing objects: 100% (22/22), 2.33 KiB | 476.00 KiB/s, done.
    Total 22 (delta 6), reused 0 (delta 0)
    remote: Resolving deltas: 100% (6/6), done.
    To https://github.com/liuzouzou/git_demo.git
     * [new branch]      master -> master
    Branch 'master' set up to track remote branch 'master' from 'origin'.

    这样我们就把我们的代码推送到了github上,刷新可以看到我们的代码已经存在了

    但是这样推送上去的只有master,在之前我们创建了两个分支,一个是dev分支,一个是bug分支,bug分支被我们删除了

     如果我们需要把dev也推送上去,可以执行下面的命令

    # git push -u origin dev
    Total 0 (delta 0), reused 0 (delta 0)
    remote:
    remote: Create a pull request for 'dev' on GitHub by visiting:
    remote:      https://github.com/liuzouzou/git_demo/pull/new/dev
    remote:
    To https://github.com/liuzouzou/git_demo.git
     * [new branch]      dev -> dev

    这样我们的dev分支就也被推送上去了

    从github拉取代码

    既然我们把代码推送到了github上,我们从另一台机器上也要开发,这时候我们可以从github上拉取下来

    # 克隆远程仓库代码
    git clone 远程仓库地址(内部已实现git remote add origin 远程仓库地址)
    # git clone https://github.com/liuzouzou/git_demo.git
    Cloning into 'git_demo'...
    remote: Enumerating objects: 22, done.
    remote: Counting objects: 100% (22/22), done.
    remote: Compressing objects: 100% (15/15), done.
    remote: Total 22 (delta 6), reused 22 (delta 6), pack-reused 0
    Unpacking objects: 100% (22/22), done.

    这样我们就把github上的代码拉取下来了,里面对应的版本也有,虽然使用git branch看不到dev分支,其实是存在的,我们可以直接切换到dev分支里

    git pull

    上面我们使用git clone从远程仓库拉取下来了代码,如果我们下一次从github获取最新代码,还需要clone吗?答案肯定不是的,git clone只是当本地没有的时候,第一次获取才需要,如果本地已经有部分代码了,就不需要用git clone了,用git pull就可以了

    # git pull origin master  # 拉取master的代码
    
    # git pull origin dev  拉取dev的代码

     上面的git pull origin dev等价与下面的两行代码

    # git fetch origin dev
    # git merge origin/dev

    当我们使用git pull origin dev的时候,是把远程仓库的代码拉取到了本地的工作区

    执行git fetch origin dev 是把远程仓库里的代码拉取到本地的版本库里

    执行git merge origin/dev 是把本地版本库里的代码拉取到本地的工作区

     git tag

    我们之前提交后显示的版本号都是git自动给我们生成的,如下

     在没tag之前,github上的Tags和release都是空的

    在本地创建tag信息
    # git tag -a version1 -m 'version1的版本'
    把本地tag信息推送到远程仓库

    使用git push origin --tags推送到远程仓库

    # git push origin --tags

    Enumerating objects: 1, done. Counting objects: 100% (1/1), done. Writing objects: 100% (1/1), 166 bytes | 166.00 KiB/s, done. Total 1 (delta 0), reused 0 (delta 0) To https://github.com/liuzouzou/git_demo.git * [new tag] version1 -> version1

    然后再去github上查看

     建立了tag之后,就可以在release里下载zip包或者tar的包了

    删除本地的tag
    # git tag -d version1
    更新本地的tag版本信息
    # git pull origin --tags
    切换tag
    # git checkout version1
    指定tag下载代码
    # git clone -b version1 地址
  • 相关阅读:
    vue axios创建实例
    vue axios全局配置
    vue axios并发请求
    vue axios HTTP 库
    vuex actions异步操作
    vuex getters
    Go并发控制--Channel篇
    UVA10228 A Star not a Tree?
    P1395 会议
    P1337 [JSOI2004]平衡点 / 吊打XXX
  • 原文地址:https://www.cnblogs.com/zouzou-busy/p/11681858.html
Copyright © 2011-2022 走看看