美文网首页@IT·互联网
GitHub使用部分--本地库和远程库之间的同步

GitHub使用部分--本地库和远程库之间的同步

作者: life云逍遥 | 来源:发表于2017-06-21 13:26 被阅读0次

    将本地库添加到远程库(git)

    前提条件

    首先需要一个本地文件夹mkdir 文件名—>git init 本地库初始化 —>添加文件到本地库git add 文件名(创建这个文件在本地库目录下)—>同步到本地库git commit -m “注释”

    1.先在GitHub上创建一个远程库

    ①登陆GitHub,然后,在右上角找到“Create a new repo”按钮,创建一个新的仓库:

    ②在Repository name填入learngit,其他保持默认设置,点击“Create repository”按钮,就成功地创建了一个新的Git仓库:

    2.cd到本地库地址上,通过命令行将本地库同步到远程库

    $ git remote add origin git@github.com:github账户名/learngit.git

    3.把本地库的所有内容推送到远程库上

    git push -u origin master

    注意:第一次推送master分支时,需要加上-u参数,可以将本地的master分支推送到远程master上,并且实现两者的同步,以后就不需要这个参数了:$ git push origin master

    SSH警告

    当第一次使用GIT的clone货push命令连接Github时会得到一个警告

    The authenticity of host 'github.com (xx.xx.xx.xx)' can't be established.

    RSA key fingerprint is xx.xx.xx.xx.xx.

    Are you sure you want to continue connecting (yes/no)?

    输入yes 回车即可

    Git会输出一个警告,告诉你已经把GitHub的Key添加到本机的一个信任列表里了:

    Warning: Permanently added 'github.com' (RSA) to the list of known hosts.

    git遇到的问题之“Please make sure you have the correct access rights and the repository exists.”

    这个是因为ssh key有问题,链接不上服务器

    解决步骤:

    1、首先我得重新在git设置一下身份的名字和邮箱(因为当初都忘了设置啥了,因为遇到坑了)进入到需要提交的文件夹底下(因为直接打开git Bash,在没有路径的情况下,根本没!法!改!刚使用git时遇到的坑。。。)

    git config --global user.name “yourname”

    git config --global user.email“your@email"

    注:yourname是你要设置的名字,your@email是你要设置的邮箱。

    2、删除.ssh文件夹(直接搜索该文件夹)下的known_hosts(手动删除即可,不需要git)

    注意:.ssh是隐藏文件需要通过命令行获取地址后 通过前往得到

    3、git输入命令

    $ ssh-keygen -t rsa -C "邮箱"(请填你设置的邮箱地址)

    接着出现:

    Generating public/private rsa key pair.

    Enter file in which to save the key (/Users/your_user_directory/.ssh/id_rsa):

    请直接按下回车

    然后系统会自动在.ssh文件夹下生成两个文件,id_rsa和id_rsa.pub,用记事本打开id_rsa.pub

    将全部的内容复制

    4、打开https://github.com/,登陆你的账户,进入设置

    进入ssh设置

    粘贴复制即可

    最后在命令行中输入ssh -T git@github.com

    若显示下面文字代表成功了

    You've successfully authenticated, but GitHub does not provide shell access.

    注意:有时候修改本地库内容后,通过git push origin master发现远程库没有改动,这是因为你只是修改了工作区的内容,并没有改变本地库的内容。解决步骤:git add 文件 存放到缓存区,git commit -m “注释”(更新到本地库中)

    问题:push出错

    $ git push -u origin master

    To git@github.com:******/Demo.git

    ! [rejected]        master -> master (non-fast-forward)

    error: failed to push some refs to 'git@github.com:******/Demo.git'

    hint: Updates were rejected because the tip of your current branch is behind

    hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')

    hint: before pushing again.

    hint: See the 'Note about fast-forwards' in 'git push --help' for details.

    原因:是因为远程repository和我本地的repository冲突导致的,而我在创建版本库后,在github的版本库页面点击了创建README.md文件的按钮创建了说明文档,但是却没有pull到本地。这样就产生了版本冲突的问题。

    解决办法:

    方法1.强制push        git push -u origin master -f

    方法2. ①push 前将远程repository修改pull下来 git pull origin master —>git push -u origin master

    方法3.若不想merge(合并)远程和本地修改,可以先创建新的分支

    git branch [分支名]

    git push -u origin [分支名]

    最后提醒:在远程建立库时要注意和本地库文件进行统一,如果本地库没有README.md文件,创建时就不需要初始化文件,也可以通过以上方法解决。

    从远程库克隆岛本地

    现在,假设我们从零开发,那么最好的方式是先创建远程库,然后,从远程库克隆。

    首先,登陆GitHub,创建一个新的仓库,名字叫gitskills:

    现在,远程库已经准备好了,下一步是用命令git clone克隆一个本地库:

    $ git clone git@github.com:github账户名/gitskills.git

    Cloning into 'gitskills'...

    remote: Counting objects: 3, done.

    remote: Total 3 (delta 0), reused 0 (delta 0)

    Receiving objects: 100% (3/3), done.

    $ cd gitskills

    $ ls

    README.md

    git 支持多种协议,包括https,但通过ssh支持的原生git协议速度更快

    相关文章

      网友评论

        本文标题:GitHub使用部分--本地库和远程库之间的同步

        本文链接:https://www.haomeiwen.com/subject/zcozqxtx.html