• 使用github常用问题汇总


    我的操作都在linux下,在创建github成功后

    1.ssh-keygen -t rsa -C "xxx@gmail.com"

    2.将.ssh/id_rsa.pub拷贝到GitHub网站,生成github的ssh key

    3.ssh -T Git@github.com测试连接github

    4.创建本地新项目工作树
    [plain] view plain copy

    mkdir new-project  
    cd new-project  
    git init  
    touch README  
    git add README  
    git commit -m 'first commit'  
    #定义远程服务器别名gitnewprj  
    git remote add gitnewprj git@github.com:xxx/new-project.git     
    #本地和远程合并,本地默认分支为master  
    git push gitnewprj master    
    

    出现 Updates were rejected because the tip of your current branch is behind,执行
    [plain] view plain copy

    git push gitnewprj master -f  
    

    5.出现访问id_rsa权限0644问题,也就是Permissions 0644 for '/c/Users/xxx/.ssh/id_rsa' are too open问题。

    运行
    [plain] view plain copy

    chmod 0600 ~/.ssh/id_rsa  
    

    并且删除windows环境变量设置CYGWIN

    [plain] view plain copy

    go to My Computer / Right Click / Properties / Advanced System Settings / Environment Variables and DELETE the variable (possibly from both system and user environment):  
      
    CYGWIN  
    

    6.假如你现在新创建了一个项目,想把它提交到github上面?

    假设你创建好了一个项目,并切换到项目的根目录下面:
    [plain] view plain copy

    $ git status   //查看当前项目下所有文的状态,如果第一次,你会发现都红颜色的,因为它还没有交给git/github管理。  
    $ git add .   //(.)点表示当前目录下的所有内容,交给git管理,也就是提交到了git的本地仓库。  
    Ps:git的强大之处就是有一个本地仓库的概念,在没有网络的情况下可以先将更新的内容提交到本地仓库。  
    $ git commit –m”new natter ”  //对你更新或修改了哪些内容做一个描述。  
    $ git remote add origin git@github.com:defnngj/hibernate-demo.git  
    //如果你是第一次提交项目,这一句非常重要,这是你本地的当前的项目与远程的哪个仓库建立连接。  
    Ps: origin可以改为别人的名字,但是在你下一次push(提交)时,也要用你修改之后的名字。  
    $ git remote -v  //查看你当前项目远程连接的是哪个仓库地址。  
    $ git push -u origin master  //将本地的项目提交到远程仓库中。  
    

    7.假如,你回到了家,想把公司提交的项目克隆到本地?
    [plain] view plain copy

     如果你是第一次想把github上面的项目克隆到本地或者要克隆别人的项目到地。  
    $ git clone git@github.com:defnngj/hibernate-demo.git  //在git下面切换到想存放此项目的文件目录下,运行这条命令就可以将项目克隆下来。  
     假如本地已经存在了这个项目,而仓库中又有一新的更新,如何把更的合并到本地的项目中?  
    $ git fetch origin    //取得远程更新,这里可以看做是准备要取了  
    $ git merge origin/master  //把更新的内容合并到本地分支/master  
    

    或者另外一个方式
    [plain] view plain copy

    $ mkdir nvttest // 创建本地项目路径  
    $ cd nvttest  
    $ git init // 初始化本地库  
    $ git status   
    $ git remote add githubnvt git@github.com:xxx/nvttest.git // 添加远程库,并建别名  
    $ git fetch githubnvt // 获取远程库信息  
    $ git checkout  nvttestb1 // 建立远程库分支nvttestb1的本地track branch  
    $ git fetch githubnvt // 取远程库分支nvttestb1的分支nvttestb1的数据  
    

    8.项目中删除了一些文件,如何提交?
    [plain] view plain copy

    假如远程仓库中已经存了aaa这个文件,我fetch了下来,并删除了aaa这个文件,想再push上到远程仓库中,并使远程仓库中的项目被新的修改覆盖(也是是远程仓库中的aaa也被删除)  
    $ git status   //可以看到我们删除的哪些文件  
    $ git add .   //删除之后的文件提交git管理。  
    $ git rm   src/com/hzh/hibernate/dao/aaa.java    //移除我们删除的那个文件,不然git不允许我们往远程仓库提交。  
    Ps: 如果你想删除的是某个目录(java包),这里想移除整个目录的内容。  
    $ git rm  src/com/hzh/hibernate/bbb/ -r   // -r 会把bbb/目录下的所有内容一次性移动。  
    

    9.远程创建了一个新仓库,本地创建了一个新项目,如何使新的项目与仓库对应起来?
    [plain] view plain copy

    $ git remote add origin git@github.com:defnngj/hibernate-demo.git  
    //还是这个命令,在你push项目之前加上这一句就OK了。  
    git@github.com:defnngj/hibernate-demo.git 就是你常见的新仓库的地址啊。git切换到新项目下,在push之前,加上这一句,我们创建的新仓库就与新项目建立了连接。  
    

    10.下载msysgit,安装msysgit

    11.在安装目录下建立.ssh目录

    12.在安装目录的bin目录下执行ssh-keygen,参见第1步内容,在输入id_rsa路径的时候去掉//.ssh/id_rsa,直接输入id_rsa,将生成成功的id_rsa,id_rsa.pub拷贝到.ssh目录下,然后按照2-4步执行

    13.建立分支
    [plain] view plain copy

    git branch xxx  
    

    14.查看分支
    [plain] view plain copy

    git branch -a  
    

    15.切换分支
    [plain] view plain copy

    git checkout xxx  
    

    16.提交更改
    [plain] view plain copy

    git commit .  
    git commit -a -m"test"  
    

    17.创建别的ssh key,参见文章

    [plain] view plain copy

    ssh-keygen -t rsa -C "xxx@163.com" -f git.key  
    

    将生成的key git.key git.key.pub 拷贝到~/.ssh中去。
    将git.key.pub拷贝到github上去(《创建GitHub账号》有图示)
    编辑~/.ssh中的config文件(没有的话,新建一个),输入如下内容(git.key是私有的key文件)
    [plain] view plain copy

    Host github.com  
    User xxx  
    Hostname github.com  
    PreferredAuthentications publickey  
    IdentityFile ~/.ssh/git.key  
    

    ssh -Tv git@github.com

  • 相关阅读:
    什么是Service Mesh
    SQL Server 创建索引(index)
    RocketMQ在面试中那些常见问题及答案+汇总
    怎样用通俗的语言解释REST,以及RESTful?
    RPC和RestFul的区别是什么?
    Java 动态字节码生成技术 javassist
    热加载如此简单,手动写一个 Java 热加载
    Dubbo源码分析(十)同步调用与异步调用
    Dubbo源码分析(九)负载均衡算法
    Dubbo源码分析(八)集群容错机制
  • 原文地址:https://www.cnblogs.com/sunkaifeng/p/5426600.html
Copyright © 2020-2023  润新知