git 本地仓库一般有新建空仓库和clone
的仓库两种形式,下面分别说下如何与远程仓库建立连接。一般情况下本地仓库和远程仓库是同名的,不同名的情况注意下细节就可以。
空仓库和远程库连接
- 新建文件夹作为仓库,在该目录下右键单击
“Git Bash Here”
运行 git bash - 输入
git init
,初始化本地仓库 - 输入
git remote add origin + 仓库地址
, 添加远程仓库(origin 是默认给远程仓库起的名字,可以改为其他的)
//这样写是因为我电脑上两个 github 账号
git remote add origin git@用户名.github.com: 用户名/learngit.git
- 根据
git
操作,输入git add,git commit
,将文件存入本地仓库 - 输入
git push -u origin master
,将之前已commit
的本地仓库文件推到远程仓库
我这里本地和远程仓库名字不同,push 时遇到了下面的问题
To sunny2946.github.com:sunny2946/forkTest.git
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'git@sunny2946.github.com:sunny2946/forkTest.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
解决办法:先 pull 远程仓库和本地仓库合并(如果有冲突需要处理冲突后重新 commit),然后再 push 就可以了
$git pull origin master --allow-unrelated-histories
$git push -u origin master
注:第一次提交加 -u 表示该分支与远程仓库中的master分支关联,后面提交直接 git push 即可
clone 仓库和远程库连接
- 在已有仓库(clone 的仓库)目录下右键单击
“Git Bash Here”
运行 git bash - 添加远程仓库地址
git remote add origin + 仓库地址
(先运行git remote -v
查看已有远程仓库,可以运行git remote rm origin
来清空原有的远程仓库连接) - 这里仍然需要先把远程仓库的
master
分支下文件同步到本地。
//获取远程仓库 master 分支的内容,命令执行后还会打开一个 vim 填写备注(可不填)
git pull origin master --allow-unrelated-histories
- 进行
git
操作,然后通过git push -u origin master
,将本地仓库推到远程仓库
注:
1、 origin 和 master 根据需要替换,一般创建远程仓库时默认仓库别名是origin,默认分支是master。
2、如果一台电脑使用多个 git 帐号,就需要根据仓库需要分别配置用户名和密码。
3、如果遇到 permission denied
问题,可以参考这篇文章 Permission denied 问题
参考文章
1、https://blog.csdn.net/Vi_error/article/details/80608793
2、https://blog.csdn.net/tushiba/article/details/81507902
3、https://blog.csdn.net/ftdd_hw/article/details/82497791#%E9%85%8D%E7%BD%AEssh-key