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

    Ubuntu下安装Git

    Ubuntu12.04 LTS默认是已经安装Git的,可以使用 git --version 测试是否安装。
    如果没有安装,使用命令: sudo apt-get install git git-core 安装git

    ssh认证

    官网教程: https://help.github.com/articles/generating-ssh-keys/

    创建公钥 ssh key

    carloz@linux:~/Downloads/usr/bin$ ls -al ~/.ssh
    total 16
    drwx------  2 carloz carloz 4096 10月 29 17:06 .
    drwxr-xr-x 42 carloz carloz 4096 10月 29 16:39 ..
    -rw-------  1 carloz carloz 1679 10月 29 16:44 github
    -rw-r--r--  1 carloz carloz  403 10月 29 16:44 github.pub
    carloz@linux:~/Downloads/usr/bin$ ssh-keygen -t rsa -b 4096 -C "xiaoqing_work@163.com"
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/carloz/.ssh/id_rsa):         
    Enter passphrase (empty for no passphrase): xiaoqing
    Enter same passphrase again: 
    Your identification has been saved in /home/carloz/.ssh/id_rsa.
    Your public key has been saved in /home/carloz/.ssh/id_rsa.pub.
    The key fingerprint is:
    66:b5:f4:85:37:4c:c1:7e:bf:d3:bd:c1:7a:d7:2d:f5 xiaoqing_work@163.com
    The key's randomart image is:
    +--[ RSA 4096]----+
    |             .o. |
    |             +.  |
    |          o ..=  |
    |         o o o...|
    |        S . .  ..|
    |       o      . o|
    |               +B|
    |              o+E|
    |             ..o+|
    +-----------------+
    carloz@linux:~/Downloads/usr/bin$ 

     

    复制公钥

    carloz@linux:~/Downloads/usr/bin$ ls -al ~/.ssh
    total 24
    drwx------  2 carloz carloz 4096 10月 29 17:12 .
    drwxr-xr-x 42 carloz carloz 4096 10月 29 16:39 ..
    -rw-------  1 carloz carloz 1679 10月 29 16:44 github
    -rw-r--r--  1 carloz carloz  403 10月 29 16:44 github.pub
    -rw-------  1 carloz carloz 3326 10月 29 17:12 id_rsa
    -rw-r--r--  1 carloz carloz  747 10月 29 17:12 id_rsa.pub
    carloz@linux:~/Downloads/usr/bin$ vi ~/.ssh/id_rsa.pub 
    carloz@linux:~/Downloads/usr/bin$ eval "$(ssh-agent -s)"
    Agent pid 8644
    carloz@linux:~/Downloads/usr/bin$ ssh-add ~/.ssh/id_rsa
    Enter passphrase for /home/carloz/.ssh/id_rsa: xiaoqing
    Identity added: /home/carloz/.ssh/id_rsa (/home/carloz/.ssh/id_rsa)
    
    carloz@linux:~/Downloads/usr/bin$ sudo apt-get install xclip
    carloz@linux:~/Downloads/usr/bin$ xclip -sel clip < ~/.ssh/id_rsa.pub

    添加key到github

    连接 github

    carloz@linux:~/Downloads/usr/bin$ rm ~/.ssh/git*
    carloz@linux:~/Downloads/usr/bin$ ls -al ~/.ssh
    total 16
    drwx------  2 carloz carloz 4096 10月 29 17:23 .
    drwxr-xr-x 42 carloz carloz 4096 10月 29 16:39 ..
    -rw-------  1 carloz carloz 3326 10月 29 17:12 id_rsa
    -rw-r--r--  1 carloz carloz  747 10月 29 17:12 id_rsa.pub
    carloz@linux:~/Downloads/usr/bin$ ssh -T git@github.com
    The authenticity of host 'github.com (192.30.252.129)' can't be established.
    RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added 'github.com,192.30.252.129' (RSA) to the list of known hosts.
    Hi carlo-z! You've successfully authenticated, but GitHub does not provide shell access.
    carloz@linux:~/Downloads/usr/bin$ 

    提交代码至GitHub

    cd carloz-lib-web/
    carloz@linux:~/Python/carloz/carloz-lib-web$ git config --global user.name "carlo-z"
    
    carloz@linux:~/Python/carloz/carloz-lib-web$ git config --global user.email xiaoqing_work@163.com
    
    git init
    git add .
    git commit -m "add new files"
    git remote add origin git@github.com:carlo-z/carloz-lib-web.git
    git push -u origin master
    carloz@linux:~/Python/carloz/carloz-lib-web$ git push origin master
    To git@github.com:carlo-z/carloz-lib-web.git
     ! [rejected]        master -> master (fetch first)
    error: failed to push some refs to 'git@github.com:carlo-z/carloz-lib-web.git'
    hint: Updates were rejected because the remote contains work that you do
    hint: not have locally. This is usually caused by another repository pushing
    hint: to the same ref. You may want to first integrate the remote changes
    hint: (e.g., 'git pull ...') before pushing again.
    hint: See the 'Note about fast-forwards' in 'git push --help' for details.
    carloz@linux:~/Python/carloz/carloz-lib-web$ git fetch
    warning: no common commits
    remote: Counting objects: 3, done.
    remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
    Unpacking objects: 100% (3/3), done.
    From github.com:carlo-z/carloz-lib-web
     * [new branch]      master     -> origin/master
    carloz@linux:~/Python/carloz/carloz-lib-web$ 
    ! [rejected]        master -> master (non-fast-forward)

    问题(Non-fast-forward)的出现原因在于:git仓库中已经有一部分代码,所以它不允许你直接把你的代码覆盖上去。于是你有2个选择方式:
    1,强推,即利用强覆盖方式用你本地的代码替代git仓库内的内容
    git push -f

    carloz@linux:~/Python/carloz/carloz-lib-web$ git push -f origin master
    Counting objects: 663, done.
    Delta compression using up to 4 threads.
    Compressing objects: 100% (636/636), done.
    Writing objects: 100% (662/662), 3.00 MiB | 23.00 KiB/s, done.
    Total 662 (delta 13), reused 0 (delta 0)
    To git@github.com:carlo-z/carloz-lib-web.git
     + 04e543c...e29d7a9 master -> master (forced update)


    2,先把git的东西fetch到你本地然后merge后再push

  • 相关阅读:
    第五次作业
    第四次作业
    第三次作业
    第二次作业
    第一次作业
    实验三 算术编码压缩方法
    实验二 统计压缩方法的具体实现
    实验一 建立统计压缩方法理论模型
    第五次作业
    第四次作业
  • 原文地址:https://www.cnblogs.com/carlo/p/4921074.html
Copyright © 2011-2022 走看看