zoukankan      html  css  js  c++  java
  • git与github

    git和github的区别:
      简单来说,git是软件,github是代码仓库,可以用git向github提交和下载代码,也可以进行协同开发

    下面详细介绍Git的使用
    **************************基本上传代码到本地库**************************
    '''
    分为三个区域:
    工作区、暂存区、本地库
    '''
    cd h:pythonweb/onlin_answers # 具体在需要上传的文件目录
    一、初始化项目(建立仓库)
      git init

    二、配置email和名字(设置签名,第一次才需要) # 区分开发人员
      git config user.name gyk # 项目级别(只在当前目录有效)
      git config user.email gyk
      或
      git config --global user.name gyk # 系统级别(任何目录有效)
      git config --global user.email gyk

    三、添加文件到暂存区
      git add new_file.py

    四、提交文件到本地仓库(双引号中是注释)
      git commit -m "第一次提交git项目" new_file.py

    ******************************其他基本操作******************************
    1.查看工作区当前状态
      git status

    2.显示历史提交记录
      git log

    3.精简版git log
      git log --pretty=oneline # 显示完整版本索引
      git log --oneline # 显示部分版本索引

    4.显示执行过的步骤
      git reflog

    5.回滚(只能回退,不能向前)
      1.HEAD # 工作区、暂存区、本地库都会回滚
        git reset --hard HEAD^5 #hard表示当前版本,HEAD^表示上一个版本,HEAD^5表示前5个版本,以此类推
        git reset --hard 343dBdt # 回滚到指定版本(343dBdt)为版本号前7位
      2.mixed # 在暂存区、本地库回滚
        git reset --mixed 343dBdt
      3.SOFT # 仅在本地库进行回滚
        git reset --soft 343dBdt

    6.比较差异
      1.比较当前(工作区)和之前(暂存区)的差异
        git diff new_file.py
      2.比较当前(工作区)和之前(本地库)的差异
        git diff HEAD new_file.py # HEAD后也可跟^,表示和历史版本比较
      3.将当前(工作区)和之前(本地库)所有文件比较
        git diff HEAD # 不指定文件名

    ********************************分支管理********************************
    1.显示所有分支
      git branch -v

    2.创建新的分支
      git branch hot_fix

    3.切换分支
      git checkout hot_fix

    4.合并到主分支
      一、切换到主分支
        git checkout master
      二、合并
        git merge hot_fix

      '''
        当合并分支时,同一文件的同一行在两个版本中都有所改动,发生冲突
        发生冲突表现为:
        <<<<<<<<<<:HEAD
        ....
        ==========
        >>>>>>>>>>:hot_fix
        ....
      '''

    5.手动解决问题并保存,此时在用status查看时,显示合并中,建议add,再commit

    6.用add标记冲突已解决
      git add new_file

    7.用commit结束合并
      git commit -m '冲突已经解决' # 注:不要带文件名

    *******************************github的使用*****************************
    # www.cnblogs.com/alex3714/articles/5930846.html  # git详解

    1.注册账号
    2.创建仓库
    3.将仓库的http地址复制下来
    4.到本地git bash界面内

    5.查看本地所保存的远程仓库
      git remote -v

    6.给远程仓库新建一个别名,并保存在本地
      git remote add origin http://github....123... # origin为保存的别名

    7.将本地库推送到远程仓库
      git push origin master

    # 成员
    克隆远程库
      git clone http://github....123...
      一个命令,三个效果:
        1.把远程库下载到本地
        2.创建远程地址别名
        3.初始化本地库
      add...
      commit...
      push...

    8.邀请成员加入团队
      github账号内,settings-->Collaborators-->搜索成员账号-->点击add Collabrators
      -->点击Copy invite link,并复制链接-->发送给成员-->成员访问链接,并同意

    # pull==fetch+merge
    9.抓取(只是将远程库拉取到本地,但并没有与本地库合并)
      git fetch origin master

    10.切换到origin的master查看
      git checkout origin/master

    11.将远程和本地合并
      git merge origin/master

    9.抓取并合并(在确定成员提交的内容没有问题的情况下,直接合并)
      git pull origin master

    ****************************远程推送时发生冲突**************************
    # 成员
    1. git push origin master
    '''
    此时会报错,提示推送失败
    需要先进行拉取,并进行修改,再进行推送
    '''
    2. git pull origin master   # 进入megie状态
    3. vim new_file   # 修改问题文件
    4. git add new_file.txt   # 标记问题已解决
    5. git commit -m '冲突已解决'   # 不带文件名
    6. git push origin master

    ********************************跨团队协作******************************
    # 第三方
    1.创建自己的github
    2.用自己的账号进入正在开发的远程库
    3.点击右上角的Fork,等待Fork,Fork完毕之后该项目会复制道自己的github上
    4.再进行clone、vim、add、commit、push等操作 # 克隆时地址还是原远程库的地址,push只能推送到自己的账号中,并可以进行查看
    5.点击Pull request-->New pull Request-->Creat pull request-->通知原项目主人

    # 原项目主人
    1.进入自己的github主页
    2.此时Pull request上会有1个未处理标记,点击查看第三方修改,还可以进行发消息交流
    3.确定没有问题,则进行合并代码:点击Merge pull request-->填写log信息-->点击Confirm merge进行合并
    4.此时已经合并到自己的远程库中,再进行拉取查看操作.......
    5.协作完成

    ******************************用SSH进行上传*****************************
    '''
    SSH一台电脑只需要登录一次,后续上传不需要再登录
    而Http每次上传都需要登录
    '''

    1.生成ssh目录
    ssh-keygen -t rsa -C "1357xxxxxxx@163.com"

    2.去对应目录C:Usersspecter.ssh下用记事本打开 id_rsa.pub,复制ssh公钥

    3.到git仓库中Settings里-->点击SSH and GPC key-->添加ssh key,粘贴进去

    4.到git仓库中选ssh复制并在命令行中输入:
    git remote add origin git@github.com:.....git

    5.上传代码
    git push -u origin master


    ***************************************************************************
    ********************************https上传*********************************
    git上新建库,并复制https链接
    本地建文件夹,bash进入,执行:
    git clone https://........
    生成库文件夹后,进入文件夹
    将项目复制进去(不包含项目总文件夹)
    bash进入库文件夹,执行:
    git branch
    git add .
    git commit -m '******'
    git push(结束)(若项目超过4m,需修改git配置文件)
    ***************************************************************************

  • 相关阅读:
    丛铭俣 160809324 (作业5)
    丛铭俣 160809324 (作业4)
    丛铭俣 160809324 (作业3)
    丛铭俣 160809324 (作业2)
    系统设计的一些原则
    计算输入框的字符长度
    DateTime.ToLongDateString
    邮箱发送验证码
    .net core中加入日志
    .net core 将类库项目转移到一个新建的文件夹下面
  • 原文地址:https://www.cnblogs.com/gyk1030/p/11691793.html
Copyright © 2011-2022 走看看