zoukankan      html  css  js  c++  java
  • 工作原理_Github基本概念

    仓库Repository

      远程仓库Remote:        就是指保存在github网站里的代码;
      本地仓库:                     本地代码;
    缓存区Index:                      是准备更新到本地仓库的一个中间阶段
    工作区Workspace:            顾名思义

    add就是用来建立跟踪,添加文件到缓存区

    commit就是把文件缓存区的文件正式加到本地库中;例:git commit -m "备注"; 必须要-m 添加备注,不然会报错

    push就是把本地库更新到远程库中; 例:git push origin master;  origin远程仓库名,master是分支

    fork:   在github页面,点击fork按钮。将别人的仓库复制一份到自己的仓库。

    pull:   在本地有项目的情况下和远程不同步的情况下 使用pull 拉取更新。相当于是从远程获取最新版本并merge到本地。
    clone:将github中的仓库克隆到自己本地电脑中。在本地没有项目的时候 使用clone。git clone 就是将其他仓库克隆到本地 ,本地无需git init,直接git clone url

    fetch:  在本地已有项目主分支的情况下还想下载项目的其他分支使用fetch。相当于是从远程获取最新到本地,不会自动merge。

    merge:

    branch 分支
    master 只是这个repository中默认创建的第一个branch,就是你默认分支或者叫主分支的名称;

    必要的手动操作:

    1、在网页上查看远程仓库的地址,到时候git remote add origin URL 会用到,不一定要用origin,也可以用另外的名字。
    2、在本地合适的路径下创建一个本地仓库的文件夹,并进入该文件夹输入git init命令进行初始化。

    ==============创建公钥私钥==========================

    SSH服务其实方便用户将本地仓库代码更新到远程仓库上,只需要输入一条指令即可,并不需要繁琐的密码验证。

    所以这涉及在本地创建公钥和私钥,并且将公钥发给github网站;

    这样以后用本地电脑传代码都不需要手动输入账户密码了。


    $ ssh-keygen -t rsa -C "huangyabin001@163.com"
    Generating public/private rsa key pair.
    Enter file in which to save the key (/c/Users/STAR/.ssh/id_rsa):
    Created directory '/c/Users/STAR/.ssh'.
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /c/Users/STAR/.ssh/id_rsa.
    Your public key has been saved in /c/Users/STAR/.ssh/id_rsa.pub.
    The key fingerprint is:
    xxxxxxx huangyabin001@163.com

    回车,使用默认设置就好,无需设置密码。
    如果顺利在用户主目录下会看到id_rsa和id_rsa.pub两个文件,其中id_rsa是私钥,不可泄露出去,而id_rsa.pub是公钥,可以公开。

    登陆GitHub,打开Account settings,SSH Keys页面,并点击Add SH Key,添加SSH Key,Title可以自由定义,
    Key文本框中就是id_rsa.pub文件的内容,直接复制即可。

    =================================================

    如果远程仓库做了修改,如何更新到本地?

    从远程获取最新版本到本地:

      1)在本地创建新temp分支的办法,将远程origin仓库的master分支代码下载到本地temp分支:git fetch origin master:temp;

      2)接第1步,也可以使用 git fetch origin master;

      3)使用命令:git diff temp;用来比较本地代码与刚从远程下载下来的代码的区别;

      4)合并temp分支到本地的master分支;git merge temp

      5)删除temp分支:git branch -d temp,如果该分支没有merge到本地,那么该分支就会报错,可以添加-d参数来强制删除;

    ==================================================

    标签:

    标签的意义:

    标签是版本库的一个快照;

    例如:遇到需要上周一那个版本,版本号是V1.2,按照v1.2查找commit就行;如果查找commit号的话,一串乱七八糟的数字不好找;

    tag是让人容易记住的有意义的名字,它跟某个commit绑定在一起;

    标签是和具体一个commit挂钩的,如果这个commit既出现在master分支上,又出现再dev分支上,在这两个分支上都可以看到标签;

     

    操作过程:

    切换到需要打标签的分支上:git branch;git checkout <branchname>;

    打标签:git tag <name>;

    查看标签:git tag;

    默认标签是打在最新commit上的。如果忘记打标签的话,找到历史提交的commit id,然后打上;

    查看标签的信息:git show <tagename>;

    如果标签打错了,可以删除:git tag -d v0.1

    因为创建的标签只在本地,不会推送到远程,删除错误的标签比较容易;

    如果要推送某个标签到远程,使用命令 git push origin <tagname>;

    一次性推送全部尚未推送到远程的本地标签:git push origin --tags;

    如果标签已经推送到远程,要删除远程标签的话,就麻烦一些,要先本地删除,再从远程删除,命令也是用push的方法;

  • 相关阅读:
    个人收藏Sql
    使用Linq生成分类Json数据
    报表分页的页眉或页脚字段有的不显示
    工作流添加跟踪后,实例一启动就会自动关闭
    委托能不能序列化
    iframe加载完成后操作contentDocument
    WCF 异步调用
    自定义控件如何嵌入javascript 文件
    ReportViewer 使用DataSet 结构 与 linQ 填充 DataSet数据
    vs 2008 不能切换到设计视图的解决办法
  • 原文地址:https://www.cnblogs.com/grooovvve/p/10741595.html
Copyright © 2011-2022 走看看