最新史上最全Git命令学习:从基础出发,上手原来如此So-easy!,全网最全原理讲解

最后

面试题文档来啦,内容很多,485页!

由于笔记的内容太多,没办法全部展示出来,下面只截取部分内容展示。

1111道Java工程师必问面试题

MyBatis 27题 + ZooKeeper 25题 + Dubbo 30题:

Elasticsearch 24 题 +Memcached + Redis 40题:

Spring 26 题+ 微服务 27题+ Linux 45题:

Java面试题合集:

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • git checkout -b dev
  • git add
  • git commit
  • git log
  • git diff
  • git status
  • git pull/git fetch
  • git push

这个图只是模拟一下git基本命令使用的大概流程哈~

git clone

当我们要进行开发,第一步就是克隆远程版本库到本地呢

git clone url 克隆远程版本库

git checkout -b dev

克隆完之后呢,开发新需求的话,我们需要新建一个开发分支,比如新建开发分支dev

创建分支:

git checkout -b dev 创建开发分支dev,并切换到该分支下

git add

git add的使用格式:

git add . 添加当前目录的所有文件到暂存区
git add [dir] 添加指定目录到暂存区,包括子目录
git add [file1] 添加指定文件到暂存区

有了开发分支dev之后,我们就可以开始开发啦,假设我们开发完HelloWorld.java,可以把它加到暂存区,命令如下

git add Hello.java 把HelloWorld.java文件添加到暂存区去

git commit

git commit的使用格式:

git commit -m [message] 提交暂存区到仓库区,message为说明信息
git commit [file1] -m [message] 提交暂存区的指定文件到本地仓库
git commit --amend -m [message] 使用一次新的commit,替代上一次提交

把HelloWorld.java文件加到暂存区后,我们接着可以提交到本地仓库啦~

git commit -m ‘helloworld开发’

git status

git status,表示查看工作区状态,使用命令格式:

git status 查看当前工作区暂存区变动
git status -s 查看当前工作区暂存区变动,概要信息
git status --show-stash 查询工作区中是否有stash(暂存的文件)

当你忘记是否已把代码文件添加到暂存区或者是否提交到本地仓库,都可以用git status看看哦~

git log

git log,这个命令用得应该比较多,表示查看提交历史/提交日志~

git log 查看提交历史
git log --oneline 以精简模式显示查看提交历史
git log -p 查看指定文件的提交历史
git blame 一列表方式查看指定文件的提交历史

嘻嘻,看看dev分支上的提交历史吧要回滚代码就经常用它喵喵提交历史

git diff

git diff 显示暂存区和工作区的差异
git diff filepath filepath路径文件中,工作区与暂存区的比较差异
git diff HEAD filepath 工作区与HEAD ( 当前工作分支)的比较差异
git diff branchName filepath 当前分支的文件与branchName分支的文件的比较差异
git diff commitId filepath 与某一次提交的比较差异

如果你想对比一下你改了哪些内容,可以用git diff对比一下文件修改差异哦

git pull/git fetch

git pull 拉取远程仓库所有分支更新并合并到本地分支。
git pull origin master 将远程master分支合并到当前本地master分支
git pull origin master:master 将远程master分支合并到当前本地master分支,冒号后面表示本地分支

git fetch --all 拉取所有远端的最新代码
git fetch origin master 拉取远程最新master分支代码

我们一般都会用git pull拉取最新代码看看的,解决一下冲突,再推送代码到远程仓库的。

有些伙伴可能对使用git pull还是git fetch有点疑惑,其实 git pull = git fetch+ git merge。pull的话,拉取远程分支并与本地分支合并,fetch只是拉远程分支,怎么合并,可以自己再做选择。

git push

git push 可以推送本地分支、标签到远程仓库,也可以删除远程分支哦。

git push origin master 将本地分支的更新全部推送到远程仓库master分支。
git push origin -d 删除远程branchname分支
git push --tags 推送所有标签

如果我们在dev开发完,或者就想把文件推送到远程仓库,给别的伙伴看看,就可以使用git push origin dev~

Git进阶之分支处理

Git一般都是存在多个分支的,开发分支,回归测试分支以及主干分支等,所以Git分支处理的命令也需要很熟悉的呀~

  • git branch
  • git checkout
  • git merge

git branch

git branch用处多多呢,比如新建分支、查看分支、删除分支等等

新建分支:

git checkout -b dev2 新建一个分支,并且切换到新的分支dev2
git branch dev2 新建一个分支,但是仍停留在原来分支

查看分支:

git branch 查看本地所有的分支
git branch -r 查看所有远程的分支
git branch -a 查看所有远程分支和本地分支

删除分支:

git branch -D 删除本地branchname分支

git checkout

切换分支:

git checkout master 切换到master分支

git merge

我们在开发分支dev开发、测试完成在发布之前,我们一般需要把开发分支dev代码合并到master,所以git merge也是程序员必备的一个命令。

git merge master 在当前分支上合并master分支过来
git merge --no-ff origin/dev 在当前分支上合并远程分支dev
git merge --abort 终止本次merge,并回到merge前的状态

比如,你开发完需求后,发版全需要把代码合到主干master分支,如下:

Git进阶之处理冲突

Git版本控制,还是多个人一起搞的,多个分支并存的,这就难免会有冲突出现~

Git合并分支,冲突出现

同一个文件,在合并分支的时候,如果同一行被多个分支或者不同人都修改了,合并的时候就会出现冲突。

举个粟子吧,我们现在在dev分支,修改HelloWorld.java文件,假设修改了第三行,并且commit提交到本地仓库,修改内容如下:

public class HelloWorld {
public static void main(String[] args) {
System.out.println(“Hello,捡田螺的小男孩!”);
}
}

我们切回到master分支,也修改HelloWorld.java同一位置内容,如下:

public class HelloWorld {
public static void main(String[] args) {
System.out.println(“Hello,jay!!”);
}
}

再然后呢,我们提交一下master分支的这个改动,并把dev分支合并过下,就出现冲突啦,如图所示:

Git解决冲突

Git 解决冲突步骤如下:

  • 查看冲突文件内容
  • 确定冲突内容保留哪些部分,修改文件
  • 重新提交,done
1.查看冲突文件内容

git merge提示冲突后,我们切换到对应文件,看看冲突内容哈,,如下:

2.确定冲突内容保留哪些部分,修改文件
  • Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,
  • <<<<<<<HEAD是指主分支修改的内容,>>>>>>> dev是指dev分支上修改的内容

所以呢,我们确定到底保留哪个分支内容,还是两个分支内容都保留呢,然后再去修改文件冲突内容~

3.修改完冲突文件内容,我们重新提交,冲突done

Git进阶之撤销与回退

Git的撤销与回退,在日常工作中使用的比较频繁。比如我们想将某个修改后的文件撤销到上一个版本,或者想撤销某次多余的提交,都要用到git的撤销和回退操作。

代码在Git的每个工作区域都是用哪些命令撤销或者回退的呢,如下图所示:

有关于Git的撤销与回退,一般就以下几个核心命令

  • git checkout
  • git reset
  • git revert

git checkout

如果文件还在工作区,还没添加到暂存区,可以使用git checkout撤销

git checkout [file] 丢弃某个文件file
git checkout . 丢弃所有文件

以下demo,使用git checkout – test.txt 撤销了暂存区test.txt的修改

git reset

git reset的理解

git reset的作用是修改HEAD的位置,即将HEAD指向的位置改变为之前存在的某个版本.

为了更好地理解git reset,我们来回顾一下,Git的版本管理及HEAD的理解

Git的所有提交,会连成一条时间轴线,这就是分支。如果当前分支是master,HEAD指针一般指向当前分支,如下:

假设执行git reset,回退到版本二之后,版本三不见了哦,如下:

git reset的使用

Git Reset的几种使用模式

git reset HEAD --file
回退暂存区里的某个文件,回退到当前版本工作区状态
git reset –-soft 目标版本号 可以把版本库上的提交回退到暂存区,修改记录保留
git reset –-mixed 目标版本号 可以把版本库上的提交回退到工作区,修改记录保留
git reset –-hard 可以把版本库上的提交彻底回退,修改的记录全部revert。

先看一个粟子demo吧,代码git add到暂存区,并未commit提交,就以下酱紫回退,如下:

git reset HEAD file 取消暂存
git checkout file 撤销修改

再看另外一个粟子吧,代码已经git commit了,但是还没有push:

最后

2020年在匆匆忙忙慌慌乱乱中就这么度过了,我们迎来了新一年,互联网的发展如此之快,技术日新月异,更新迭代成为了这个时代的代名词,坚持下来的技术体系会越来越健壮,JVM作为如今是跳槽大厂必备的技能,如果你还没掌握,更别提之后更新的新技术了。

更多JVM面试整理:

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

此之快,技术日新月异,更新迭代成为了这个时代的代名词,坚持下来的技术体系会越来越健壮,JVM作为如今是跳槽大厂必备的技能,如果你还没掌握,更别提之后更新的新技术了。

[外链图片转存中…(img-7KQJG3S4-1715664948064)]

更多JVM面试整理:

[外链图片转存中…(img-FoVpBwuQ-1715664948064)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 15
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值