【Git】本地仓库管理远程库(GitHub)——clone(下载)、commit(添加到本地仓库)、push(提交到远程仓库)、pull(拉取)操作

目录
  • 使用远程仓库的目的
  • 将本地仓库同步到git远程仓库
    • 1.克隆远程仓库(clone)
    • 2.新建一个文件
    • 3.将工作区的文件添加到暂存区
    • 4.将暂存区的文件添加到本地仓库(commit)
    • 5.提交(同步)到远程仓库(push)
    • 6.远程库拉取到本地库(pull)
    • 7.团队协作开发和跨团队协作开发(开源项目)

使用远程仓库的目的

作用:备份,实现代码共享集成化管理
在这里插入图片描述

将本地仓库同步到git远程仓库

在这里插入图片描述

1.克隆远程仓库(clone)

1.目的

将远程仓库(GitHub对应的项目)下载到本地

2.复制

git  clone  仓库地址

仓库地址获取(这里我下载OpenCV):
在这里插入图片描述
在这里插入图片描述
速度还挺快的哈,每秒4M多呢!以后可以用这种方法下载文件了。

我再下载自己的仓库
在这里插入图片描述

在这里插入图片描述
这里我下载了好几次才成功。

2.新建一个文件

在这里插入图片描述

3.将工作区的文件添加到暂存区

git  add  hello.c 

在这里插入图片描述

4.将暂存区的文件添加到本地仓库(commit)

git  commit  -m  "提交描述"

在这里插入图片描述

5.提交(同步)到远程仓库(push)

git push 

在这里插入图片描述
添加成功

如果提示:The requested URL returned error: 403 Forbidden while accessing等
答案:私有项目,没有权限,输入用户名密码,或者远程地址采用这种类型
vi .git/config
将url => https://github.com/用户名/仓库名.git
修改为: url => https://用户名:密码@github.com/用户名/仓库名.git

6.远程库拉取到本地库(pull)

这部分摘自这篇博文:https://xiongyiming.blog.csdn.net/article/details/106153902

远程库拉取(pull)到本地库命令格式为: git pull origin master ,origin为远程库地址的别名。

将远程库文件更新到本地库,本地工作区文件将会更新,如果本地有和远程库同名的文件,将会强制更新本地库文件。

例如新建test_pull文件,新建123.txt文件,然后提交到本地库,如下图所示:

在这里插入图片描述


将远程库地址更改别名(git remote add origin 远程库地址),然后执行命令:git pull origin master

在这里插入图片描述


此时发现,pull失败,因为本地库有和远程库不相同的文件,此时可以通过命令:git pull origin master --allow-unrelated-histories 强制拉取(pull)

在这里插入图片描述


下面将本地库文件全部推送到远程库,命令为:git push origin master ,结果如下图所示

在这里插入图片描述


此时刷新网页,查看GitHub仓库中123.txt文件成功的从本地库提交到远程库,如下图所示:

在这里插入图片描述


假设在GitHub仓库中更改文件内容,此时本地库内容没有变,现在然后从将远程库拉取(pull)到本地库,看看会不会强制更新本地库文件内容。

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


由上图可以看出,远程库123.txt文件被修改,此时将远程库拉取到本地库,执行命令:git pull origin master ,结果如下图所示,本地库123.txt文件被更新了。

在这里插入图片描述


当然也可以通过命令: git fetch origin master 将远程库文件抓取到本地库缓存区,此时本地库和工作区文件并没有被合并,
通过命令:git checkout origin/master 切换到本地库缓存的分支上,然后通过命令: cat 文件名 来查看文件内容

接下来可以将缓存区分支文件和本地库文件进行合并,通过命令:git checkout master切换到本地库分支上,然后再将缓存区的分支合并到本地库:命令为:git merge origin/master

注: pull操作相当于 fetch + merge 操作。关于git pull命令和git fetch命令的区别可以参见博客

  1. git fetch和git pull之间的区别
  2. git pull 和 git fetch的区别?



7.团队协作开发和跨团队协作开发(开源项目)

团队协作开发和跨团队协作开发(开源项目)可以参考之前的博客:GitHub协作开发项目

其实重点是远程仓库和本地仓库之间的推送(push)操作和拉取(pull)操作,因为在这个过程中可能出现远程库文件和本地库文件不相同,这是需要自己去判断。具体的问题在实际操作中可能会遇到,等遇到了这些问题在更新自己的笔记。

你可能感兴趣的:(GitHub,git,github,clone,commit,push,pull)