Github(gitee)实现远程仓库

本文详细介绍通过HTTP和SSH协议在Github(gitee)上建立远程仓库的过程,包括常见错误处理方法。同时,深入探讨分支管理技巧,如创建、切换、合并分支及解决冲突等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Github(gitee)实现远程仓库

Github(gitee)新建仓库

在这里插入图片描述

方法一:基于Http协议

  1. 创建一个空目录
//创建目录
# 创建空目录
$ mkdir test_git
#进入目录
$ cd test_git/
  1. 复制Github上的地址
    在这里插入图片描述
  • 使用clone指令克隆线上仓库到本地:git clone 线上仓库地址
$ git clone 地址
Cloning into 'test1'...
fatal: unable to access 'https://github.com/Zany555/test1.git/': OpenSSL SSL_read: Connection was reset, errno 10054

  • 这里出现乐错误10054,经过查阅了解到应该是远程服务器的问题,访问国外的网站经常超时,我用gitee(码云)试了下没有问题。
$ git clone https://gitee.com/zany555/git-test.git
Cloning into 'git-test'...
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 4 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (4/4), 1.41 KiB | 7.00 KiB/s, done.
  1. 对仓库进行操作(提交缓存区、提交本地仓库、提交至线上仓库、拉取线上仓库)
# 提交缓存区:
$ git add test.txt

#提交本地仓库
$ git commit -m "提交第一个测试文件"
[master 46d1e3a] 鎻愪氦绗竴涓祴璇曟枃浠? 1 file changed, 1 insertion(+)
 create mode 100644 test.txt
  • 提交至线上仓库:在首次向线上提交内容时会出现403的错误,原因是没有权限。
  • 修改配置文件:.git/config
    在这里插入图片描述
  • 再次使用git push就能提交成功了
$ git push
#显示结果
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 4 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 362 bytes | 362.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
remote: Powered by GITEE.COM [GNK-5.0]
To https://gitee.com/zany555/git-test.git
   9fa24b7..46d1e3a  master -> master

在这里插入图片描述

  • 拉取线上仓库:git pull
$ git pull

#显示结果
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 290 bytes | 1024 bytes/s, done.
From https://gitee.com/zany555/git-test
   46d1e3a..362c544  master     -> origin/master
Updating 46d1e3a..362c544
Fast-forward
 test2.txt | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 test2.txt

注:在工作时的第一件事是git pull,工作最后要git push

方法二:基于SSH协议(推荐)

  • 此方法与方法一不同就在于验证方式的不同。
    步骤:生成客户端公私钥文件->将公钥上传到代码托管平台(GitHub)

  • 生成客户端公私钥文件:(需要安装OpenSSH)

$ ssh-keygen -t rsa -C "注册邮箱"
  • 将公钥上传到代码托管平台(GitHub)
  1. 找到执行代码后显示内容中的路径,用记事本打开并复制
  2. 在Github的进行设置
    在这里插入图片描述
  • 配置好后就可以直接执行命令$ git clone 地址(在需要输入时,输入yes再回车,如果直接回车会报错
    Host key verification failed.
    fatal: Could not read from remote repository.
    Please make sure you have the correct access rights
    and the repository exists.)
$ git clone ssh地址
Cloning into 'test1'...
The authenticity of host 'github.com (13.250.177.223)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'github.com,13.250.177.223' (RSA) to the list of known hosts.
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (3/3), done.
  • 之后就和方法一相同(不需要配置用户名和密码)。

分支管理

项目需要区分模块,每个模块进行同步开发,所以我们需要分支。
master为主分支。

分支相关指令:

  • 查看分支:git branch
$ git branch
#内容
* main

注:当前分支由*符号

  • 创建分支:git branch 分支名
$ git branch dev

$ git branch
#执行结果
  dev
* main
  • 切换分支:git checkout 分支名(git checkout -b 分支名:先创建分支再切换到分支 )
$ git checkout dev
Switched to branch 'dev'
  • 合并分支:git merge 被合并的分支名
#在dev分支下创建文件,并提交
$ git add dev.txt

$ git commit -m "新增dev文件"
#执行结果
[dev 6d16abc] 鏂板dev鏂囦欢
 1 file changed, 1 insertion(+)
 create mode 100644 dev.txt

#切换到main分支下查看dev文件,发现文件没有了
$ git checkout main
#执行结果
Switched to branch 'main'
Your branch is up to date with 'origin/main'.

#在main分支下,将dev的内容合并,执行后就能看到dev分支下的文件
$ git merge dev
#执行结果
Updating f38093b..6d16abc
Fast-forward
 dev.txt | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 dev.txt
  • 删除分支:git branch -d 分支名(先退出再删除)
$ git branch -d dev
#执行结果
Deleted branch dev (was 6d16abc).


$ git branch
#执行结果
* main

注:以上分支操作均为本地操作,如果需要提交到远程仓库直接push就行。

问题:在新创建的分支进行push的时候回报错,原因是远程仓库并没有此分支所以无法push。

$ git push
#执行结果
fatal: The current branch dev has no upstream branch.
To push the current branch and set the remote as upstream, use

    git push --set-upstream origin dev

解决方法:$ git push -u origin 分支名

$ git push -u origin dev
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 4 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 359 bytes | 359.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
remote:
remote: Create a pull request for 'dev' on GitHub by visiting:
remote:      https://github.com/Zany555/test1/pull/new/dev
remote:
To github.com:Zany555/test1.git
 * [new branch]      dev -> dev
Branch 'dev' set up to track remote branch 'dev' from 'origin'.

冲突

冲突的产生

  • 当一个分支dev修改后push,另一个分支main没有pull直接修改了文件,修改后push会报错不会成功。此时push就会产生冲突。

解决冲突

  1. git pull 拉取文件,git会发现冲突自动进行合并。
  2. 两个分支(dev和main)进行商量,文件如何保留,由main重新提交commit 然后push上传。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值