@IT·互联网

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

2017-06-21  本文已影响0人  life云逍遥

将本地库添加到远程库(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协议速度更快

上一篇下一篇

猜你喜欢

热点阅读