Git 版本控制(2) 远程仓库 && 先有本地库,后有远程库的时候,如何关联远程库

Git  远程仓库

 

第1步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsaid_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:

$ ssh-keygen -t rsa -C "350866797@qq.com"
 

admin@DESKTOP-HJR5QFJ MINGW64 /d/learnGitt (master)
$ ssh-keygen -t rsa -C "350866797@qq.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/admin/.ssh/id_rsa):
Created directory '/c/Users/admin/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/admin/.ssh/id_rsa.
Your public key has been saved in /c/Users/admin/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:horcwkxjNX271tr6+mPgxv0/JT+JhwAEh25NzoZcbo0 350866797@qq.com
The key's randomart image is:
+---[RSA 2048]----+
|       .o.       |
|     . ..+       |
|    o + @ o      |
|   . . B E .     |
|  +   o S .      |
| * + . ..o .  . .|
|  * o  ooo. . o+.|
|   .   .+o+  o.+.|
|       .+*+o..o..|
+----[SHA256]-----+


第2步:登陆GitHub,打开“Account settings”,“SSH Keys”页面:

然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容:

你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码。

如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsaid_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。

 

 

 

 


 

 

  git remote add origin git@github.com:silvercell/Mydemos.git

  git push -u origin master

 

admin@DESKTOP-HJR5QFJ MINGW64 /d/Mydemos
$ git init
Initialized empty Git repository in D:/Mydemos/.git/

admin@DESKTOP-HJR5QFJ MINGW64 /d/Mydemos (master)
$ git status
On branch master

Initial commit

nothing to commit (create/copy files and use "git add" to track)

 

admin@DESKTOP-HJR5QFJ MINGW64 /d/Mydemos (master)
$ git remote add origin git@github.com:silvercell/Mydemos.git

 

admin@DESKTOP-HJR5QFJ MINGW64 /d/Mydemos (master)
$ git status
On branch master

Initial commit

nothing to commit (create/copy files and use "git add" to track)

 

 

admin@DESKTOP-HJR5QFJ MINGW64 /d/Mydemos (master)
$ git push -u origin master
error: src refspec master does not match any.
error: failed to push some refs to 'git@github.com:silvercell/Mydemos.git'

 

 

admin@DESKTOP-HJR5QFJ MINGW64 /d/Mydemos (master)
$ touch detailPro.txt

admin@DESKTOP-HJR5QFJ MINGW64 /d/Mydemos (master)
$ git status
On branch master

Initial commit

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        detailPro.txt

nothing added to commit but untracked files present (use "git add" to track)

admin@DESKTOP-HJR5QFJ MINGW64 /d/Mydemos (master)
$ git add *

admin@DESKTOP-HJR5QFJ MINGW64 /d/Mydemos (master)
$ git commit -m "init pro"
[master (root-commit) 1268c2e] init pro
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 detailPro.txt

admin@DESKTOP-HJR5QFJ MINGW64 /d/Mydemos (master)
$ git status
On branch master
nothing to commit, working tree clean

 

admin@DESKTOP-HJR5QFJ MINGW64 /d/Mydemos (master)
$ git push -u origin master
To github.com:silvercell/Mydemos.git
 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'git@github.com:silvercell/Mydemos.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.

 

admin@DESKTOP-HJR5QFJ MINGW64 /d/Mydemos (master)
$ git pull
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:silvercell/Mydemos
 * [new branch]      master     -> origin/master
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.

    git pull <remote> <branch>

If you wish to set tracking information for this branch you can do so with:

    git branch --set-upstream-to=origin/<branch> master


admin@DESKTOP-HJR5QFJ MINGW64 /d/Mydemos (master)
$ ls
detailPro.txt

admin@DESKTOP-HJR5QFJ MINGW64 /d/Mydemos (master)
$ git pull remote master
fatal: 'remote' does not appear to be a git repository
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

 

 

admin@DESKTOP-HJR5QFJ MINGW64 /d/Mydemos (master)
$ git pull  git@github.com:silvercell/Mydemos.git  master
From github.com:silvercell/Mydemos
 * branch            master     -> FETCH_HEAD
fatal: refusing to merge unrelated histories

 

 

admin@DESKTOP-HJR5QFJ MINGW64 /d/Mydemos (master)
$ git pull origin master --allow-unrelated-histories
From github.com:silvercell/Mydemos
 * branch            master     -> FETCH_HEAD
Merge made by the 'recursive' strategy.
 README.md | 2 ++
 1 file changed, 2 insertions(+)
 create mode 100644 README.md

 

admin@DESKTOP-HJR5QFJ MINGW64 /d/Mydemos (master)
$ git status
On branch master
nothing to commit, working tree clean

 

admin@DESKTOP-HJR5QFJ MINGW64 /d/Mydemos (master)
$ git reflog
ec72bbd (HEAD -> master) HEAD@{0}: pull origin master --allow-unrelated-histories: Merge made by the 'recursive' strategy.
1268c2e HEAD@{1}: commit (initial): init pro

 

admin@DESKTOP-HJR5QFJ MINGW64 /d/Mydemos (master)
$ git push -u origin master git@github.com:silvercell/Mydemos.git
error: src refspec git@github.com does not match any.
error: failed to push some refs to 'git@github.com:silvercell/Mydemos.git'

 

admin@DESKTOP-HJR5QFJ MINGW64 /d/Mydemos (master)
$ git push -u origin master
Counting objects: 5, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (5/5), 503 bytes | 0 bytes/s, done.
Total 5 (delta 0), reused 0 (delta 0)
To github.com:silvercell/Mydemos.git
   e4cdf06..ec72bbd  master -> master
Branch master set up to track remote branch master from origin.

 

 

 【步骤】

初始化git

添加仓库

pull 远程仓库 $ git pull origin master --allow-unrelated-histories

推送到远程仓库   git push -u origin master

 

 

文章: 

git无法pull仓库refusing to merge unrelated histories

本文讲的是把Git在最新2.9.2,合并pull两个不同的项目,出现的问题如何去解决fatal: refusing to merge unrelated histories

我在Github新建一个仓库,写了License,然后把本地一个写了很久仓库上传。

先pull,因为两个仓库不同,发现refusing to merge unrelated histories,无法pull

因为他们是两个不同的项目,要把两个不同的项目合并,git需要添加一句代码,在git pull,这句代码是在git 2.9.2版本发生的,最新的版本需要添加--allow-unrelated-histories

假如我们的源是origin,分支是master,那么我们 需要这样写git pull origin master ----allow-unrelated-histories需要知道,我们的源可以是本地的路径

link:   http://blog.csdn.net/lindexi_gd/article/details/52554159

 

文章: 

github上传时出现error: src refspec master does not match any解决办法

  http://www.jianshu.com/p/8d26730386f3

 

 

 

 

  总结:

    1. 生成或者 在    C:\Users\admin\.ssh  中查找   id_rsa id_rsa.pub ,  

        生成命令: $ ssh-keygen -t rsa -C "350866797@qq.com"

        将 id_rsa.pub 添加到github 的 ssh_key 中

    2.如何将本地 git 仓库和远程仓库联系起来

      git init  ,  git remote add origin git@github.com:silvercell/Mydemos.git  , git pull origin master --allow-unrelated-histories , git push -u origin master 

 

 

 


简书:

  http://www.jianshu.com/p/8d26730386f3

git无法pull仓库refusing to merge unrelated histories

http://blog.csdn.net/lindexi_gd/article/details/52554159

 

posted @ 2017-08-28 14:11  silvercell  阅读(795)  评论(0)    收藏  举报