操作远程仓库
创建远程仓库
第一步: 访问GitHub官网,登录自己的账号创建一个远程仓库
第二步: 设置远程仓库的信息(一般远程库的名字和本地库的名字一样
),仓库创建完成后可以看到仓库地址(每个仓库都会对应一个网络地址)
第三步: 查看本地仓库对应的Https/SSH连接
远程仓库命令
命令 | 功能 |
---|---|
git remote | 查看当前本地仓库对接的所有远程仓库的别名 |
git remote -v | 查看当前本地仓库对接的所有远程仓库的详细信息 |
git remote add [远程仓库的别名] 远程仓库地址 | 添加远程仓库同时可以设置远程仓库的别名,一般别名是仓库地址的后面部分 |
git remote rm 远程仓库的别名 | 移除远程仓库 |
git clone 远程仓库地址 | 从远程仓库克隆内容到本地指定的一个目录,克隆后会自动初始化本地库同时对接远程仓库 |
git pull 仓库链接/别名 分支名 | 从远程仓库的某个分支拉取资源到本地仓库的对应分支,拉取时可以使用仓库别名或仓库地址 |
git push 仓库链接/别名 分支名 | 推送资源到远程仓库的某个分支,推送时可以使用仓库别名或仓库地址 |
git remote add [远程仓库的别名] 远程地址链接
: 只有本地仓库初始化后才能添加远程仓库,不设置远程仓库别名默认名为origin
(别名一般本地仓库名一致)
git remote -v(可省略)
: -v表示查看当前本地仓库对接的所有远程仓库的详细信息
#添加远程仓库
Layne@LAPTOP-Layne MINGW64 /d/Git-Space/SH0720 (master)
#https://github.com/atguiguyueyue/git-shTest.git是在创建完远程仓库后自动生成的连接
$ git remote add git-shTest https://github.com/atguiguyueyue/git-shTest.git
Layne@LAPTOP-Layne MINGW64 /d/Git-Space/SH0720 (master)
# 查看当前本地仓库对接的所有远程仓库的详细信息
$ git remote -v
git-shTest https://github.com/atguiguyueyue/git-shTest.git (fetch)
git-shTest https://github.com/atguiguyueyue/git-shTest.git (push)
#表示查看当前本地仓库对接的所有远程地址
Layne@LAPTOP-Layne MINGW64 /d/Git-Space/SH0720 (master)
$ git remote -v
git-shTest
git clone 远程库地址
:将远程仓库的内容克隆到本地目录,执行流程拉取代码-->初始化本地仓库-->对接远程仓库(别名默认是origin)
- 如果远程仓库是公共的,克隆远程仓库到本地是不需要登录账号验证的,克隆私有的远程仓库需要登录账号验证判断是否是该远程仓库的成员
- 默认配置下Git会克隆远程仓库上的所有数据, 包括每一个文件的每一个版本提交的日志信息和历史记录等
#克隆远程仓库到本地的pro-linghuchong目录下,默认对接的远程仓库别名是origin
Layne@LAPTOP-Layne MINGW64 /d/Git-Space/pro-linghuchong
$ git clone https://github.com/atguiguyueyue/git-shTest.git
Cloning into 'git-shTest'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 3 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
git pull 远程库链接/别名 远程分支名
: 拉取远程仓库的某个分支的最新版本到本地仓库的对应分支,拉取后的文件会自动提交到本地库
如果当前本地仓库是自己初始化的并且存在文件
,此时从远程仓库拉取文件的时候会报错fatal: refusing to merge unrelated histories
方案一
: 重新创建一个空的本地仓库目录直接克隆对应的远程仓库方案二
: 在git pull
命令后加入参数--allow-unrelated-histories
#将远程仓库对应本地分支的最新内容拉下来后与当前本地分支直接合并
Layne@LAPTOP-Layne MINGW64 /d/Git-Space/SH0720 (master)
# 添加参数解决拉取失败问题
$ git pull git-shTest master --allow-unrelated-histories
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (1/1), done.
remote: Total 3 (delta 1), reused 3 (delta 1), pack-reused 0
Unpacking objects: 100% (3/3), done.
From https://github.com/atguiguyueyue/git-shTest
* branch master -> FETCH_HEAD
7cb4d02..5dabe6b master -> ori/master
Updating 7cb4d02..5dabe6b
Fast-forward
hello.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
git push 远程仓库链接/别名 分支名
: 推送本地资源到远程仓库时需要保证本地仓库与远程仓库更新一致
,不一致时需要先拉取(自己初始化的本地库还要添加参数)
- 推送本地内容到远程仓库所以需要登录
Giett/GitHub账号
验证,如果这个远程库是你自己的可以直接推送, 如果是其他人的你需要成为本地库的成员
# 将master分支上的内容推送到GitHub上创建的远程仓库
Layne@LAPTOP-Layne MINGW64 /d/Git-Space/SH0720 (master)
$ git push git-shTest master
Logon failed, use ctrl+c to cancel basic credential prompt.
Username for 'https://github.com': atguiguyueyue
Counting objects: 3, done.
Delta compression using up to 12 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 276 bytes | 276.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/atguiguyueyue/git-shTest.git
* [new branch] master -> master