文章分类 - git学习笔记
git学习笔记
摘要:将GitHub上的东西clone的时候出现了问题,clone失败使用的是ssh连接进行克隆 git@github.com: Permission denied (publickey). 这通常意味着 SSH 密钥验证失败,你没有足够的权限访问该 GitHub 仓库。 在一个新主机上使用 SSH 想要
阅读全文
摘要:平常使用 Git 作为版本控制工具,一定每天都能见到 origin,诸如: $ git push origin main $ git fetch origin main $ git pull origin main 这里的 origin,还有看似相同的 origin/master、origin/ma
阅读全文
摘要:通过git merge我们可以合并两个分支的改动。这样我们就可以很方便地进行协同开发了,每个人都在自己的分支下开发代码,开发完毕之后再一起合并到master分支。通过这种方式可以保证大家的代码不会陷入混乱,但是这样有一个隐含的缺陷。 缺陷就是我们之前说过的,当我们合并两个没有上下游关系的分支时,gi
阅读全文
摘要:有的时候如果我们要处理的文件很多,使用git add .等操作会非常有隐患,因为很有可能我们一不小心就疏忽了一些内容。如果我们使用一个文件名一个文件名地填写呢,又非常地复杂,体验并不好。所以呢git当中还提供了第三种方法,也就是今天要介绍的内容——交互式工具。 交互式暂存 交互式暂存的命令非常简单,
阅读全文
摘要:git当中一个非常好用的功能——区间选择,它可以帮我们处理看起来非常复杂的提交记录。从而帮助我们很快找到我们需要的内容。 如果大家有参与过多人协同的项目开发,比如十几个人甚至更多的成员的时候,会发现一些分支的记录非常的混乱,比如master。因为其中包含了太多的提交信息,比如各种分支的merge记录
阅读全文
摘要:这两个命令虽然不是必知必会,但是如果熟练使用可以极大地帮助我们查看代码仓库的问题,以及在我们操作失误的时候拯救我们。 git show 它解决了我们日常开发场景当中非常常见的一个问题,就是回看某一个提交的内容。我们通过git log只能阅读到commit的时候输入的提示语。但有些开发者不遵守规范,或
阅读全文
摘要:git branch可以说是git当中最重要的概念,因为git最重要的使用场景就是协同开发,大家一起在一个项目当中开发不同的功能。正是由于有了分支的概念,可以让大家在开发的时候互不影响。如果没有这个功能,git的其他功能做的再好,可能都没有用。 Git的结构 branch的英文就是树枝,后来衍生出了
阅读全文
摘要:git log大家可能有所耳闻,即使没有也不难从名字当中猜出用途,它可以展示出当前分支上所有的提交。 比如在存放git文章的repo下运行git log,就可以查看到之前的提交记录: log当中有两处比较重要的信息: 其中一个是commit后面跟着的一长串,这个是commit id,它在git仓库当
阅读全文
摘要:Git文件的四大状态分别是untrack,modified,committed和staged。 untrack track有轨道以及记录的意思,所以untrack就是还没记录。那么什么样的东西是还没记录的呢?比如可以想到新生儿,刚出生的新生儿名字都没有,当然也没有记录在案,所以需要登记一下人口。那么
阅读全文
摘要:在使用 Git 进行版本控制的过程中,有时候我们会遇到一些棘手的情况,比如不小心删除了一个分支、重置了 HEAD 到错误的提交,或者丢失了某个提交或文件。在这些情况下,Git 的 reflog 命令就成了我们的好帮手。 什么是 git reflog Git 的 reflog 是指引用日志(refer
阅读全文
摘要:在日常的代码管理中,我们经常会遇到需要修改 Git 历史记录的情况,比如删除中间的某些 commit。使用 git rebase 进行变基操作可以帮助我们轻松实现这一点。 为什么不用reset和revert? 这两种方法在特定的情况下确实很好用。但是我们经常会遇到这种情况:我们在 Git 仓库中提交
阅读全文
摘要:git commit --amend 命令:也叫追加提交,它可以在不增加一个新的commit的情况下,将新修改的代码追加到前一次的commit中。 使用该命令的好处,是避免许多无用的提交。 说明: 如果自上次提交以来,你还未做任何修改(例如,在上次提交后马上执行了此命令),那么快照会保持不变(不产生
阅读全文
摘要:Git的三种后悔药 在Git中后悔药有三种:amend、revert、reset。 git commit --amend:新的提交覆盖上一次提交的内容。 git revert:提交一个新的commit,来撤销之前的commit。 git reset:直接回滚到指定的commit。 --soft:只回
阅读全文
摘要:git reset --hard commit-id命令:回退到指定版本。(hard:强硬,严格的回退) 该命令不仅移动了分支中HEAD指针的位置,还将工作区和暂存区中数据也回退到了指定的版本,该命令慎用。 首先在版本库中的readme.txt文件中添加一行内容,并提交该内容。我们的目的就是要再回退
阅读全文
摘要:git reset --mixed commit-id命令:回退到指定版本。(mixed:混合的,即:中等回退。) 该命令不仅修改了分支中HEAD指针的位置,还将暂存区中数据也回退到了指定版本,但是工作区中的版本仍是回退前的版本。 --mixed参数是git reset命令的默认选项。 首先在版本库
阅读全文
摘要:git reset --soft commit-id命令:回退到指定版本。(soft:柔软的) 该命令仅仅修改分支中的HEAD指针的位置,不会改变工作区与暂存区中的文件的版本。实现上是只做了一件事情,就是移动HEAD指针的指向,指向了指定的提交版本。 首先在版本库中的readme.txt文件中添加一
阅读全文
摘要:什么版本回退 版本回退也可以叫回滚。 若修改过的文件,不仅添加到了暂存区,还提交到了本地版本库,还能撤销吗? 已经无法撤销修改了,但是可以回退到修改前的版本。 版本回退也是撤销操作的一种,但我更愿意和前两种撤销操作分开理解。 你不断对文件进行修改,然后不断提交修改到版本库里,就好比玩RPG游戏时,每
阅读全文
摘要:Git Commit命令是Git版本控制系统中用于提交更改的关键命令。通过Git Commit,用户可以将工作区或暂存区的更改保存到本地存储库中,并在需要时将这些更改推送到远程存储库。 基本用法 这个命令将暂存区的内容提交到本地存储库,并附带一条指定的提交信息(message)。 git commi
阅读全文
摘要:`git stash` 用于暂时保存当前工作目录的修改(未提交的更改),以便你可以切换到其他分支或进行其他操作,而不丢失这些修改。 Git的分支状态存储 当我们在项目的一部分上已经工作一段时间后,所有东西都进入了混乱的状态,而这时想要切换到另一个分支做一点别的事情,则必须将当前工作空间所做的操作提交
阅读全文
摘要:使用git rebase的几种意义如下: 使用git log时,可以看到一个更整洁commit 历史树; 对于git工作流,commit数要多而有意义,这样review 代码速度加快,而且commit 都是有意义的,而且利于回退; 很多人的分支提交历史经常是fix,fix, fix agian,好的
阅读全文