Git 是一个开源的分布式版本控制系统,
用于敏捷高效地处理任何或小或大的项目。
简单的来说就是用来进行版本控制, 举个例子:
公司让开发一个项目, 项目的 1.0 版本开发出来以后, 老板不满意, 修改过后 2.0 版本还不满意, 继续修改得 3.0 版本, 结果老板觉得还是 1.0 版本好, 如果我们已经把 1.0 版本删了, 此时就比较麻烦了, 但是不删的话, 我们也不知道什么时候用要哪一版, 就要保存很多冗余的版本
此时, Git 站出来解决了这个问题, Git 会记录我们每次修改的地方, 能让我们随时回退到之前的某个版本
工作区: 就是我们在电脑里面能看到的目录
暂存区: 英文叫 stage 或 index. 一班存放在 .git 目录下的 index 文件 (.git/index) 中, 所以我们把暂存区有时也叫做索引 (index).
版本库 / 本地仓库: 工作区有一个隐藏目录 .git, 这个不算工作区, 而是 Git 的本地版本库
远程仓库: 云端的仓库, 就是我们常说的 Gitee / Github
经过上面的 Git 的工作流程加上几个相关概念, 想必现在理解 它们之间的区别就不难了
Git 是一种分布式的版本控制系统,可以用来有效地管理项目代码的历史版本和多人协作开发。
Gitee 和 Github 则是基于 Git 的 Git 托管服务平台,提供了代码托管、版本管理、协作开发、代码审查、CI/CD 等一系列功能。
可以简单理解为 Gitee / Github 是在线仓库平台, 而 Git 就是操作这些仓库的工具
workspace: 工作区
staging area :暂存区/缓存区
local repository: 版本库或本地仓库
remote repository: 远程仓库
git add: 添加文件到暂存区
git commit: 将暂存区内容添加到仓库中
git push: 上传远程代码并合并
git pull: 下载远程代码并合并
git clone: 拷贝一份远程仓库,也就是下载一个项目。
git fetch: 从远程获取代码库(并不会合并)
git checkout: (有多种功能, 其中一个常用的是) git checkout [分支名]切换到指定分支
git pull 和 git fetch 的区别:
git fetch 和 git pull 都是用来从远程代码库中获取最新代码的,
git fetch | git pull |
---|---|
git fetch 命令只是将最新代码下载到本地所对应的远程分支中,而不会将代码合并到你正在工作的分支中。这意味着你需要手动合并远程分支到本地分支或者重新基于最新的远程分支创建一个新的本地分支。 | git pull 命令则会执行两个操作,即 git fetch 和 git merge,将最新代码下载到本地,然后立即将其合并到当前代码分支中。通常情况下,git pull 命令可以自动解决代码合并冲突,但这不总是能保证合并结果是正确的。 |
不同分支:
可以将不同分支看作不同的成员在团队协作中负责不同的任务,而代码的合并则类似于团队合作时不同成员为了实现项目目标而协同工作,将共同的成果整合到一起,形成最终的代码
原因: gitee 网站的邮箱和本地的邮箱不匹配
步骤一: 复制 gitee 网站上的邮箱
步骤二 : 更改本地的邮箱
push 失败时的错误信息: Your push would publish a private email address
push 失败时的错误信息: Incorrect username or password
步骤一:
同样是在本地仓库中的 设置界面
步骤二: 删除凭据管理器里面之前 gitee 中的数据
步骤三: 重新 push 时输入用户名和密码, 密码就是自己注册时设置的密码
push 失败时的错误信息: could not create work tree dir '.../Git/...': Permission denied
不要把仓库克隆到 Git 安装的目录下, 克隆到其他地方即可
push 失败时的错误信息: 'git pull ...' before pushing again
原因: 远程仓库被修改了, 可能是自己不小心在 Gitee 网站上进行了修改, 也有可能是其他成员对代码进行了修改,
解决: 我们 push (推送) 时就需要 先 pull (拉取) 一下, 获取远程仓库代码的最新版本, 在此基础上修改, 这样不会造成因为覆盖导致的丢失更新
举个栗子:
原本代码中的值为 5, A 对它 + 1, push 了, B 也对 + 1, 那么 B 如果没 pull 就 push , 最终的值为 6, 但是 如果 B pull 了再 push , 那么结果就是 7,这才是我们想要的结果
好啦, 以上就是我对 Git 和 Gitee 的简单介绍, 希望能帮到你, 评论区欢迎指正 !