Git 版本控制(2) 远程仓库 && 先有本地库,后有远程库的时候,如何关联远程库
Git 远程仓库
第1步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_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_rsa和id_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 masterInitial 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 masterInitial 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.txtadmin@DESKTOP-HJR5QFJ MINGW64 /d/Mydemos (master)
$ git status
On branch masterInitial 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.txtadmin@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.txtadmin@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

浙公网安备 33010602011771号