2024年安卓最全Git学习笔记(2),面试加分项徐强 百度网盘

最后

考虑到文章的篇幅问题,我把这些问题和答案以及我多年面试所遇到的问题和一些面试资料做成了PDF文档

喜欢的朋友可以关注、转发、点赞 感谢!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

git reset [1dedb4c7d15a commit sha1]

reset后加具体的提交sha1值,可以会退到[1dedb4c7d15a]这个版本,之后的提交将会被删除(危险操作!!!慎用,虽然可以使用git fsck --lost-found 找回)

可以使用checkout [1dedb4c7d15a]分离头指针查看之前的提交,可以基于此次提交去修改代码,(注意再次切回其他分支时候,必须为此创建一个branch,不然基于此次的commit都会消失),这样可以共存

找回丢失的commit(救命!!!)

git fsck --lost-found

如果不小心使用的 git reset [commit sha1],会把你的[commit sha1]提交之后的文件全部删除

此时,可以通过git fsck --lost-found去寻找那些被悬空(dangling)的commit,然后通过提交的sha1值去

改命令还可以先找到那些被悬空的文件

可参加 github总结(4)–关于git reset --hard这个命令的惨痛教训

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

修改文件名之后,提交到暂存区

git mv [readme] [readme.md]

修改文件名之后,提交到暂存区

注意:不需要1.在工作区里修改这个文件名,然后 2. add修改后的文件 3.rm旧的文件,

直接执行 git mv [readme] [readme.md]即可

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

查看简要的log

git log --oneline

查看简要的log

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

查看最近4个log

git log -n4 --oneline

查看最近4个log

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图形化展示所有分支的log

git log --all --gragh

查看所有分支的log,图形化展示

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

查看git log的帮助,在浏览器里

git help --web log

查看git log的帮助,在浏览器里

调出图形界面

gitk

调出图形界面

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

创建分支

git checkout -b [分支名] [commit sha1/分支名称]

创建分支

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

切换分支

git checkout [分支名]

切换分支

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

查看所有分支

git branch -av

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

删除分支

git branch -d [分支名]

git branch -D [分支名]

如果-d清除不掉的,确实不想要,可以用-D

其实就是让你确认删除的意思

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

查看文件类型

git cat-file -t [文件sha1]

查看文件类型,有三种文件类型

commit :提交

tree :文件夹

blod :文件

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

查看文件内容

git cat-file -p [文件sha1]

查看文件内容,注意只能查看sha1,不能写文件名(因为git存文件是以sha1存储的,避免同一个文件不同名称的情况浪费空间)

直接 cat [文件名]也可以查看文件内容,但这不是git的命令

比较两次提交的差异

git diff [commit sha1] [commit sha1]

还可以用HEAD指代当前的提交

用HEAD~1指代前一次提交 相当于 HEAD^

HEAD~2 指代前两次提交… 相当于 HEAD^^

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

比较暂存区与HEAD之间的差异

git diff --cached

比较工作区与HEAD之间的差异

git diff —HEAD

比较工作区与暂存区差异

git diff

注意后面什么都不加,表示所有文件作比较

可以使用git diff -- [文件名] 来单独比较指定的文件,注意 --与[文件名]之间必须加空格

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

如何让暂存区的全部文件恢复成和HEAD的一样?

git reset HEAD

我们每次在工作区修改了文件,都要先添加到暂存区,然后执行commit,把暂存区的文件提交到仓库

git status 是查看工作区与暂存区文件的区别,他不会显示每个文件的具体那内容,只是告诉你

  1. 工作区有一个文件没添加到暂存区 红色 还不能提交
  1. 工作区有一个文件内容修改了,但是没添加到暂存区 红色 还不能提交
  1. 你已经把工作区的修改添加到了暂存区 绿色 可以直接提交了

下图:

  1. 第一次执行 git status 显示你已经把工作区的修改add到了暂存区
  1. 执行完git reset HEAD 后,把暂存区恢复成功与HEAD一样了,也就是说,之前工作区add到暂存区的文件都回退了
  1. 第二次执行git status 显示,你工作区的文件,还没有add进暂存区,
  1. 其实git reset HEAD 是 git add 的逆向操作

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

暂存区里的部分文件恢复成和HEAD一样

git reset HEAD -- [文件名]

git reset HEAD -- [文件名] [文件名] 多个文件之间使用空格

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

工作区恢复成暂存区状态 23

git checkout — [文件名]

如果变暂存区内容:reset

如果变工作区内容:checkout

消除最近的几次提交 24

git reset — hard [commit sha1值]

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

修改最近一次提交的msg

git commit --amned

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

弹出

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

修改完退出后

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

修改前几次的提交信息

git rebase -i [commit sha1]

假设log历史为

5

4

3

2

1

第一步:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

注意:要改变第3条log,必须 git rebase 2 也就是3的父亲,然后再展开操作

第二步:

弹出下图,把你要修改的那条提交 pick 改为r ,保存退出

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

第三步:

退出上图会再次弹出一个图,直接修改log信息,然后保存退出,就成功了(这一步没截图,使用这个黑色的图凑一下,就是这个图)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

第四步:

注意下图变基之后的提交sha1都变了

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

合并多个连续的commit为一个commit

需求:

合并多个提交

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

第一步:

git rebase -i [父提交sha1]

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

第二步:弹出下图,把pick改为s ,‘ESC’键,输入:wq 退出

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

第三步:

这时候会弹出来,键入三次合并一次的提交信息,保存退出

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

弹出

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

检查一下子:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

合并多个不连续的commit

需求:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

步骤繁琐一点,略 可参见视频《怎样把间隔的几个commit整理成1个》

临时加塞的紧急任务怎么办stash

基于上次提交,正在修改A文件,但是还没改完,这时候突然有紧急bug,需要处理C文件,

可以使用 git stash 把目前的修改了一部分的A文件暂存在一边,此时git status发现工作区是干净的,与暂存区一样的,

现在去处理C文件,处理完后提交即可

现在想回过头来继续处理A文件,执行git stash apply或者git stash pop后即可把做了一般的A文件恢复

git stash

把目前手头上的活先搁置到一边存起来

git statsh list

查看所有stash的列表

WIP on master: c5618a9 qqq)

git stash apply

类似堆栈,弹出最上面的stash

把 stash里的改动弹出来,放到工作区,而且stash list里的信息(WIP on master: c5618a9 qqq)还存在

git stash pop

把 stash里的改动弹出来 放到工作区,而且删除stash list里的信息(WIP on master: c5618a9 qqq)

添加忽略文件

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

注意:

doc 表示不管doc文件夹,也不管doc文件夹下面的文件

doc/ 表示要管里doc文件夹,但是不要管doc文件夹下面的文件

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

git备份

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

哑协议(一般不用)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

智能协议(一般用这个)

git clone --bare file:///path [仓库名].git [备份仓库名]

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

本地的仓库push到远端仓库

需求:

在上图中,hello这个仓库是本地的仓库,我们在这里完成工作,并提交到仓库里

上图中的ya.git和zhineng.git属于远端仓库,是通过git clone --bare file:///path [仓库名].git创建的,

现在我们要把平时工作的hello仓库的提交,push到远端的zhineng.git

第一步:通过git remote add建立仓库间的关联

切换到本地hello仓库,执行

git remote add <name> <url>

git remote add [zhineng] [file:///Users/apple/learning/beifen/zhineng.git]

建立关联

此时可以通过 git remote -v查看本地仓库所关联的远端仓库地址

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

第二步:git push

首次提交需要使用git push --set-upstream zhineng temp

以后使用 git push <name>即可

这样每次本地hello仓库有了变动,就可以push到远端了

注意:如果本地关联了多个远端仓库

  1. 先查看所有的远端仓库 git remote -v

  2. 然后选择你要push的仓库地址 git push [路径]

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Github

GitHub里创建ssh公钥、私钥 ?

帮助文档

创建公钥私钥

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

查看创建好的公私钥(我原来就有,新创建了一个)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在github里配置公钥

配置好公钥后,以后不需要输入账户名密码,github会智能识别你的身份

在上图的命令行里切换到公钥所在目录,输入命令查看公钥信息

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

然后打开github,复制进去

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

配置好如下图(这是老师在视频里的截图)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在github上创建一个个人仓库

把本地的仓库关联到github的仓库
  1. 复制远端地址 use HTTPS 可以切换各种协议,得到远端不同的仓库地址

  2. 本地运行git remote add [新起个仓库名字] [远端仓库地址]

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

往github上push

在上图中 执行 git push [我们起远端仓库名 github] --all

--all表示push本地所有分支

push 之前一定要先在github上配置好公钥,不然会显示没有权限

开始push,出现问题

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

git fetch [远端仓库名] [远端仓库分支]

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

gitk --all图形化查看所有分支

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们直接 git merge [远端分支],被拒绝了

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

需要加上 --allow-unrelated-histories去merge不相关的提交

git merge --allow-unrelated-histories github/master

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

查看本地+远端所有分支

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

ok,merge成功了

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

现在再去push

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

再次看看图形

最后

以前一直是自己在网上东平西凑的找,找到的东西也是零零散散,很多时候都是看着看着就没了,时间浪费了,问题却还没得到解决,很让人抓狂。

后面我就自己整理了一套资料,还别说,真香!

资料有条理,有系统,还很全面,我不方便直接放出来,大家可以先看看有没有用得到的地方吧。

系列教程图片

2020Android复习资料汇总.png

flutter

NDK

设计思想开源框架

微信小程序

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

lated-histories github/master`

[外链图片转存中…(img-LUiWw7vY-1715748005699)]

查看本地+远端所有分支

[外链图片转存中…(img-Srpco9AF-1715748005699)]

ok,merge成功了

[外链图片转存中…(img-DryiKE7C-1715748005699)]

现在再去push

[外链图片转存中…(img-iEFRkOwy-1715748005699)]

再次看看图形

最后

以前一直是自己在网上东平西凑的找,找到的东西也是零零散散,很多时候都是看着看着就没了,时间浪费了,问题却还没得到解决,很让人抓狂。

后面我就自己整理了一套资料,还别说,真香!

资料有条理,有系统,还很全面,我不方便直接放出来,大家可以先看看有没有用得到的地方吧。

[外链图片转存中…(img-uBbrdUe5-1715748005700)]

[外链图片转存中…(img-3wmFGQj2-1715748005700)]

[外链图片转存中…(img-5zm8ZlFO-1715748005700)]

[外链图片转存中…(img-0qsdyOeU-1715748005701)]

[外链图片转存中…(img-ze0NVLOC-1715748005701)]

[外链图片转存中…(img-DNia4kMM-1715748005701)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值