zoukankan      html  css  js  c++  java
  • github的使用

    本地安装git

    https://code.google.com/p/msysgit/downloads/list

    生成sshkey

    输入 ssh-keygen ,按enter,多按几次enter 公钥生成在 C:Documents and Settingsxxx.ssh 目录中,找到目录 ,里面有id_rsa.pub文件,用记事本打开,然后把里面的东西 全选复制。

    有公钥和私钥

    并在github上配置sshkey(目的是使本地和线上的github能互相通信)

    github上新建一个项目

    https://github.com/yanghaize/yourbook.git

    在项目目录里执行

    安装 Git 之后,你要做的第一件事情就是去配置你的名字和邮箱,因为每一次提交都需要这些信息:

    git config --global user.name "bukas"
    git config --global user.email "bukas@gmail.com"

    首次提交代码

    echo "# yourbook" >> README.md
    git init //初始化自己的仓库
    git add . //添加文件到本地创库
    git commit -m "first commit"//添加本次提交的注释
    git remote add origin https://github.com/yanghaize/yourbook.git//将本地创库和git创库链接
    git push -u origin master   //把本地 master 分支 推送到 服务器的master分支上,如果服务器没有此分支,就 新建 此分支。这也是 在服务器上新建分支的一种方法/将本地代码上传到服务器

    首先,git要求使用者必须提供自己的身份标识,为此我们需要在git bash中执行以下命令:
    git config --global user.name  'aa.Tessst'
    git config --global user.email  fsc@sina.com

    提交失败的例子:
    1.
    error: pathspec 'composer' did not match any file(s) known to git. error: pathspec 'composer.lock' did not match any file(s) known to git. error: pathspec 'vendor' did not match any file(s) known to git. 解决方法:git rm -r --cached .

    2.
    ![rejected]  master->master(fetch first)  
    error:failed to push some refs to 'https://github.com/xxx/xxx.git'
    
    

    
    
    
    
    

    最后执行git pull,然后再执行push就可以了:

    
    

    
    
    
    
    

    原因是:刚才在网站上改了README.md文件,添加了一些项目的说明,然后使用Git客户端再次提交的时候,需要先更新服务器上的变化,然后才能提交,也就是先更新再提交。

    
    

    3.

    ! [rejected] master -> master (non-fast-forward)(有推荐视频)

    问题(Non-fast-forward)的出现原因在于:git仓库中已经有一部分代码,所以它不允许你直接把你的代码覆盖上去。于是你有2个选择方式:

    1,强推,即利用强覆盖方式用你本地的代码替代git仓库内的内容

    $ git fetch

    $ git merge

    这2句命令等价于

    1. $ git pull
    1. $ git pull  

    可是,这时候又出现了如下的问题:


    上面出现的 [branch "master"]是需要明确(.git/config)如下的内容
    [branch "master"]
    remote = origin

    merge = refs/heads/master

    这等于告诉git2件事:

    1,当你处于master branch, 默认的remote就是origin。

    2,当你在master branch上使用git pull时,没有指定remote和branch,那么git就会采用默认的remote(也就是origin)来merge在master branch上所有的改变

    如果不想或者不会编辑config文件的话,可以在bush上输入如下命令行:

      1. $ git config branch.master.remote origin
      2. $ git config branch.master.merge refs/heads/master


    之后再重新git pull下。最后git push你的代码吧。

    我的解决方法是:

    先执行git pull

    然后再执行 git push --force origin master 替换原先的git push -u origin master


    直接 用 git pull 将项目 从 github 上 同步 下来

    有两种方法:

    1、当git clone之后,直接git pull它会自动匹配一个正确的remote url

    是因为在config文件中配置了以下内容:

    1 [branch "master"] 2 remote = origin 3 merge = refs/heads/master

    表明:

    1.git处于master这个branch下时,默认的remote就是origin;

    2.当在master这个brach下,使用指定remote和merge的git pull时,使用默认的remote和merge。

    建议:用第二种 方法,因为 如果 是 git clone的 项目,当 执行 git push 时,因为 在 git  config里 url  是 只读方式

    [remote "origin"]
        fetch = +refs/heads/*:refs/remotes/origin/*
        url = git://github.com/xxx/xxx.git
    //git@github.com:XXX/XXX.git 这才是 读写方式

     
  • 相关阅读:
    分布式系统中的限流与熔断
    迷你MVVM框架 avalonjs 0.99发布
    将一个符合URL格式的字符串变成链接
    用CSS开启硬件加速来提高网站性能(转)
    通过window.crypto.getRandomValues获得一个大于零的随机数
    jquery slideDown效果
    五个你必须知道的javascript和web debug技术
    迷你MVVM框架 avalonjs 0.98发布
    使用avalon实现SKU组合查询功能
    angular与avalon对复杂对象的修改
  • 原文地址:https://www.cnblogs.com/aipiaoborensheng/p/7425345.html
Copyright © 2011-2022 走看看