上传本地文件到GitHub
前期准备
- 下载git客户端,地址:https://git-scm.com/downloads![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/9a9f1e30df004e3b98705c748573db37.png)
- GitHub上创建仓库,在账户头像下点击"Your Repositories",点击“New” 根据需求填写选择后创建仓库
- 设置SSH Key 已设置的可以跳过 检查
id_rsa.pub
文件是否存在:在电脑的C:\Users\pc\.ssh
文件夹下查看是否存在id_rsa.pub
文件 如果不存在,则打开git Bash
,输入以下命令:
ssh-keygen -t rsa -C"[email protected]"
其中,
[email protected]
为GitHub的邮箱
输入后回车,回车,输入
y
后回车,会显示如下:
然后就可以在前面的位置找到
id_rsa.pub
文件,打开并复制其内容
在GitHub账户的
Setting
→
SSH and GPG keys
→
New SSH key
在
Title
(方框1)处填名称,自取
在
Key
(方框2)处填
id_rsa.pub
文件的内容
然后点
Add SSH key
添加SSH key
直接将本地文件上传至Github
直接上传,会在GitHub仓库下创建一个名为
master
的分支,并将本地文件内容上传至该分支中
在要上传的本地文件夹处右键选择
Open Git Bash here
,打开git命令窗口
输入以下语句:
在此文件夹生成一个.git隐藏文件:
git init
将文件添加到缓存区( 注意这个".“,是有空格的,”."代表这个test这个文件夹下的目录全部都提交,也可以通过git add 文件名 提交指定的文件):
gitadd.
查看现在的状态,可不看:
git status
提交添加到缓存区的文件,即操作注释:
git commit -m"这里是注释"
添加新的git方式的origin, github上创建好的仓库和本地仓库进行关联,此处的
https://xxx@xxx/test.git
为该仓库的git地址:
git remote add origin https://xxx@xxx/test.git
把本地库的所有内容推送到远程仓库(github)上,即上传本地文件:
git push origin master
如果显示下图,则说明上传成功
trouble shooting
把本地库的所有内容推送到远程仓库(github)上时遇到以下报错
输入命令:
git pull origin master
如果又报错:
其实这个问题是因为 两个 根本不相干的 git 库, 一个是本地库(只有picture), 一个是远端库(test仓库里只有readme文件), 然后本地要去推送到远端, 远端觉得这个本地库跟自己不相干, 所以告知无法合并 ,解决方法:先把两部分内容合并以下,有两种方式
方法一
输入:
git pull --rebase origin master
git push origin master
方法二
输入:
git pull origin master --allow-unrelated-histories
(会弹到文件里面,输入“:wq”退出该文件,如果没有遇到,请忽略)
git push origin master
将本地文件上传到GitHub的默认main分支
在git bash中输入:
在初始化时指定默认分支:
git init -b main
初始化之后修改:
git branch -m master main
可以发现原来的
master
变成了
main
全局方式修改默认分支:
git config --global init.defaultBranch main
接下来同之前的方法:
git init
gitadd.
git status
git commit -m"这里是注释"
git remote add origin https://xxx@xxx/test.git
上传本地文件,此处将
master
改为
main
:
git push origin main
如果报错:
解决方法同上,不过将
master
改为
main
:
git pull --rebase origin main
git push origin main
显示如下内容表示上传成功:
本地文件夹关联至多个仓库
如果需要将一个本地文件夹关联都多个仓库,有以下两种方法
方法一 push、pull分开操作
- 查看本地仓库关联的远程仓库
git remote -v
如图:
- 添加一个远程仓库
git remote add repository_name repository_ssh
其中,
repository_name
为仓库名(自定义)例如,初始的仓库名(上图中)为
origin
,
repository_ssh
为远程仓库的ssh,示例如图:
- 再次查看本地仓库关联的远程仓库
git remote -v
如图:
- 对远程仓库进行push或pull,需指定目标仓库,分别操作:
git push origin master
git push coding.net master
git pull origin master
git pull coding.net master
如果是在
main
分支操作,将其中的
master
改为
main
即可
方法二 push、pull不分开操作
如果对多个远程仓库操作相同,无需区分仓库进行操作,可使用以下方法:
- 查看本地仓库关联的远程仓库
git remote -v
如图:
- 为现有仓库添加额外的URL,为已有的名为name(此处为
origin
)的远程仓库添加一个远程地址,如:
git remote set-url -add origin [email protected]:XXX/xxxxx.git
- 再次查看关联的远程仓库:
$ git remote -v
origin [email protected]:XXX1/xxxxxxxxxxx1.git (fetch)
origin [email protected]:XXX1/xxxxxxxxxxx1.git (push)
origin [email protected]:XXX/xxxxx.git (push)
trouble shooting
- 关联到两个仓库后,使用
git add .
,出现以下报错: 这是因为该文件夹中已经包含了一个.git文件夹,删掉即可,此处,将另一个仓库coding.net
文件夹中的.git文件夹删掉
参考
[1] 上传本地文件(夹)到GitHub和更新仓库文件
[2] 关于Github默认分支main和master以及如何在git init时指定默认分支
[3] 本地Git仓库关联多个远程仓库的两种方法
版权归原作者 purples. 所有, 如有侵权,请联系我们删除。