[Git] - 一文领略Git其中的秘密,上传文件从此不再报错

Git: 是一个开源分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

好了闲话少叙,我们先来看一张Git工作的流程图
在这里插入图片描述
我们先大致的看一下这个流程稍微在脑海中加深一下对他的印象。

Workspace : 工作区,就是我们在电脑中可以看到的目录
index: 暂存区  放在“.git”目录下
Repository: 本地仓库  上传到本地库的数据只有我们自己可以访问,其他人不能访问
Remote:远程仓库    托管在因特网或其他网络中的你的项目的版本库。  例如:github

下面我们先进行的是从工作目录到本地仓库之间的操作。
1.进入要上传文件夹的内部
在这里插入图片描述
2.我们可以通过vim a.md 创建一个文件,里面写入数据,进行git init 初始化,这样我们的文件夹下就会出现半透明的文件夹 .git。git系统当中的的所有数据都存在于.git文件夹之中
在这里插入图片描述
在这里插入图片描述
3.下面我们应该把文件交给 git 让git 进行管理文件,使用 git add a.md 将文件提交到缓存区,在执行之前我们可以通过 git status 这个命令查看 文件此时的状态
在这里插入图片描述
在这里插入图片描述
我们可以看出有红色的字体变成绿色 , 说明git 已经跟踪到这个文件, new file 也说明这是一个新的被git管理的文件
4.在执行 git status 这个命令他会提示我们此时的状态和下一步我们要做什么。我们可以看出 no commits yet 现在没有进行提交
我们可以通过 git commit -m “第一次提交” 这个命令可以将数据从缓存提交到本地仓库
在这里插入图片描述
通过git status 命令,我们可以看出现在这个文件已经提交到本地 (nothing to commit ,working tree clean) 没有数据提交,工作目录是干净的。
5. git log 查看我们提交的记录
在这里插入图片描述
我们可以看到提交的 commit id 相当于文件提交的地址
6.当我们在进行代码开发的时候,我们可以先将一部分代码提交到暂存区交给git管理,当我们在工作目录再次开发代码的时候,如果代码在测试中出现bug我们可以从本地仓库中,将我们原来的代码从暂存区中重新覆盖到工作目录上。我们可以使用 git checkout 文件名
这是我们刚开始创建a.md 中的内容
在这里插入图片描述
进行测试的时候我们对齐进行修改
在这里插入图片描述
使用 git checkout a.md 将暂存区中的文件 覆盖到工作目录
在这里插入图片描述
7.在我们进行工作的时候我们会在工作目录建立许多的其他文件,可能是项目的构思文本,当我们将数据都提交到暂存区,如果不想提交这些文件到本地仓库,我们可以在暂存区中将这些文件删除, git rm --cached 文件名
我们可以创建一个 b.md文件先将它加入到缓存区。
在这里插入图片描述
我们看到现在暂存区里面已经有了 b.md
我们使用 git rm --cached b.md

在这里插入图片描述
这样就可以将缓存区的文件进行删除,但是工作目录上仍然有这个文件。
8.当我们的工作目录中的代码出现了问题,并且git 的提交记录也出现了问题,我们又想回到出错之前那个文件的状态,那么我们可以通过 git reset --hard commitId 来恢复更新记录
首先我们在创建一个 c.md ,然后和 b.md 一起提交到本地仓库。

在这里插入图片描述
假设我们a.md 中的数据出现了问题,我们要回到那个节点去修改数据,我们先把b.md c.md 提交到本地仓库,通过提交记录 git log 找到 a.md 的id,在使用 git reset --hard commitId

在这里插入图片描述
在这里插入图片描述
可以看出我们现在已经恢复了 a.md 这个文件 ,b.md c.md在工作目录也会被删除

9.经过了上面的操作我们已经对git命令有一些基本的了解,下面我们要讲一下 master 是什么?
master(主分支):第一次向git 仓库中提交更新记录时自动产生的一个分支。
使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。主线一般都是产品已经上线中的文件代码。而分支就相当于打游戏时我们所刷的副本。
所以创建分支十分重要。
开发分支(develop):作为开发的分支,基于master创建,开发相互独立,完成开发分支后将会向主分支上进行合并。
功能分支(feature):作为开发具体功能的分支,基于开发分支创建,当完成好功能后就往开发分支上进行合并(merged)
在这里插入图片描述
在这里插入图片描述

分支的命令:
git branch 进行查看分支
我们可以git中只有一个主分支 绿色的字体
在这里插入图片描述
git branch 分支明名称 创建分支
在这里插入图片描述
git checkout 分支名称 进行切换分支
在这里插入图片描述
在分支上创建文件,当我们要切换到主分支上的时候,我们要将文件提交到本地仓库,否则在git中将会出现异常。
在这里插入图片描述
当我们再次切换到master时,我们再次观察master中的文件
在这里插入图片描述
分支独立工作,互补干扰。
将主分支与test分支合并 使用 git merge 来源分支 这个操作必须要切换到master上进行才会生效
在这里插入图片描述
这样我们就可以在主分支上访问在test分支上创建的文件。
那么分支的功能使用结束了,我们怎样删除它呢,有点过河拆桥,哈哈,使用 git branch -d 分支名称 这样可以删除分支,但是git内部为了防止误删分支,所以分支不合并之前,使用 -d 不会删除分支,实在想要删除就要选用 git branch -D 分支名称
在实验中我已经完成合并,所以我使用哪种都可以删除分支
在这里插入图片描述
这样我们就成功的删除了分支

在我们实际的开发中,我们可能会遇到,当我们正在使用分支进行开发功能,这是产品经理过来讲线上出现bug要求你立即修改,但是当前的代码还未开发完成,不想要提交本地,到是一旦不提交,写的文件将会出现错误。
所以使用 git stash 可以暂时提取分支上所有的改动并存储
当线上的bug修改完毕后在使用 git stash pop 恢复改动,切记一定要进入分支目录

上面就是我们工作目录到本地仓库进行的操作,那么我们还要学习最重要的功能就是为了实现远程仓库,协同开发的功能。
我们可以选择 github 做我们的远程仓库,进行我们项目代码的托管。
GitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名GitHub。
首先我们要注册账号。这点就不想详细介绍了…

在实现远程仓库的功能前,我们要首先理解协同开发的步骤
在这里插入图片描述
引用了这个图,我们设置两个程序员,一个叫 小Q ,一个叫小R吧,上面名字太复杂
1.小Q在自己的计算机中创建本地仓库
2.小Q在github中创建远程仓库
在这里插入图片描述
3.小Q将自己本地仓库推送到远程仓库
推送:
git push 远程仓库地址 分支名称
git push 远程地址的别名 分支名称
当要把项目远程到远程仓库中最后一个仓库时。我们首先拿到这个仓库的地址
在这里插入图片描述
仓库地址为:https://github.com/lovebxy/-.git
所以我们推送的命令就是 git push https://github.com/lovebxy/-.git master
在这里插入图片描述
再一次推送的时候会让你输入 github的账号和密码 在win10中这些密码都会存放在 控制面板\用户帐户\凭据管理器
在这里插入图片描述
那么每次提交的时候都是这样就太麻烦了
所以我们可以先创建一个远程仓库地址的别名,将地址等信息保存在其中
git remote add origin(自定制的名字)
下面直接就可以使用 git push origin master 进行提交
如果你还嫌弃麻烦我们直接可以使用
git push -u origin master 这样git 将会记住你的远程地址和分支名称,这样在下次直接输入 git push 就可以实现推送数据的操作了
但是在这我遇到了错误

To https://github.com/lovebxy/hello.git
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'https://github.com/lovebxy/hello.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.

更新被拒绝,因为远程包含您所做的工作,本地没有。这通常是由另一个存储库推送引起的,指向相同的引用。您可能希望首先集成远程更改.
大致也就是上面的意思,搞了半天
想着换个远程仓库地址的名字就提交成功了,我想应该也可以直接使用 git push https://github.com/lovebxy/-.git master 应该也不会报错。

在这里插入图片描述
通过了上面的方式,小Q也就完成了创建远程仓库的事情。
4.小R克隆远程仓库到本地进行开发
使用 git clone 远程仓库地址

在这里插入图片描述
在这里插入图片描述
这样小R就可以在本地中进行开发
5.小R将本地仓库中的内容推送给远程仓库
git init
git add .
git commit -m “”
git push https://github.com/lovebxy/-.git master
当然了这是肯定不行的,如果这样话,岂不是就乱套了
在实现远程仓库协助开发时候,小Q应该在github中设置 准许小R的github账户可以上传文件到仓库。
由于没有两个账户,将就看下,哈哈
在这里插入图片描述在这里插入图片描述
邀请过后,会有一个邀请的链接,小Q要将链接发送给小R,当小R打开这个链接接受邀请,重复刚才的命令就可以提交数据到远程仓库了。

6.小Q将远程仓库中最新的内容拉取到本地
通过 git pull 远程仓库地址 分支名称
这样就可以将远程仓库最新的版本拉取到本地仓库了

这样就可以完成协助操作来完成一个项目了。
了解到这些,应该 就可以算消灭 git 知识的一大半内容了。
加油 !!!
欲求小小赞,不知君满吾 。
在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
download-git-repo是一个用于从GitHub、GitLab等代码托管平台上下载代码仓库的工具。如果在使用download-git-repo时遇到报错,可能有以下几种原因和解决方法。 1. 网络连接问题:下载代码仓库需要通过网络连接到代码托管平台,如果网络连接异常或不稳定,可能会导致下载失败。这时可以尝试检查网络连接是否正常,并重试下载操作。 2. 权限问题:有些代码仓库可能设置了访问权限,如果没有相应的权限,下载操作就会失败。在使用download-git-repo时,需要确保你有访问该代码仓库的权限,否则无法下载。可以尝试检查你的访问权限,并确认是否有权下载该代码仓库。 3. 参数配置错误:在使用download-git-repo时,需要提供正确的参数配置。如果参数配置错误,也会导致下载失败。可以检查一下传递给download-git-repo的参数是否正确,例如代码仓库的地址、分支、保存路径等。 4. download-git-repo工具自身问题:有时候,download-git-repo工具本身可能存在一些问题,例如版本不兼容或者有bug。可以尝试更新或升级download-git-repo工具,或者尝试使用其他下载工具来下载代码仓库。 总之,download-git-repo报错可能原因多种多样,需要根据具体错误提示和情况进行排查和解决。可以通过检查网络连接、权限、参数配置等方面来确定问题所在,并尝试相应的解决方法来解决报错

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值