type
status
date
slug
summary
tags
category
icon
password

Git的基本常用命令

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

      git checkout -b dev

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

      git add

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

      git commit

      git commit的使用格式:
      把HelloWorld.java文件加到暂存区后,我们接着可以提交到本地仓库啦~

      git status

      git status,表示查看工作区状态,使用命令格式:
      当你忘记是否已把代码文件添加到暂存区或者是否提交到本地仓库,都可以用git status看看哦~

      git log

      git log,这个命令用得应该比较多,表示查看提交历史/提交日志~
      嘻嘻,看看dev分支上的提交历史吧要回滚代码就经常用它喵喵提交历史

      git diff

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

      git pull/git fetch

      我们一般都会用git pull拉取最新代码看看的,解决一下冲突,再推送代码到远程仓库的。
      有些伙伴可能对使用git pull还是git fetch有点疑惑,其实 git pull = git fetch+ git merge。pull的话,拉取远程分支并与本地分支合并,fetch只是拉远程分支,怎么合并,可以自己再做选择。

      git push

      git push 可以推送本地分支、标签到远程仓库,也可以删除远程分支哦。
      如果我们在dev开发完,或者就想把文件推送到远程仓库,给别的伙伴看看,就可以使用git push origin dev~

      Git进阶之分支处理

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

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

      git checkout

      切换分支:

      git merge

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

      Git进阶之处理冲突

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

      Git合并分支,冲突出现

      同一个文件,在合并分支的时候,如果同一行被多个分支或者不同人都修改了,合并的时候就会出现冲突。 举个粟子吧,我们现在在dev分支,修改HelloWorld.java文件,假设修改了第三行,并且commit提交到本地仓库,修改内容如下:
      我们切回到master分支,也修改HelloWorld.java同一位置内容,如下:
      再然后呢,我们提交一下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撤销
      以下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的几种使用模式
      先看一个粟子demo吧,代码git add到暂存区,并未commit提交,就以下酱紫回退,如下:
      再看另外一个粟子吧,代码已经git commit了,但是还没有push:
      如果代码已经push到远程仓库了呢,也可以使用reset回滚哦(这里大家可以自己操作实践一下哦)~

      git revert

      与git reset不同的是,revert复制了那个想要回退到的历史版本,将它加在当前分支的最前端。 当然,如果代码已经推送到远程的话,还可以考虑revert回滚呢

      Git进阶之标签tag

      打tag就是对发布的版本标注一个版本号,如果版本发布有问题,就把该版本拉取出来,修复bug,再合回去。

      Git其他一些经典命令

      git rebase

      rebase又称为衍合,是合并的另外一种选择。 假设有两个分支master和test
      执行 git merge test得到的结果
      执行git rebase test,得到的结果
      rebase好处是: 获得更优雅的提交树,可以线性的看到每一次提交,并且没有增加提交节点。所以很多时候,看到有些伙伴都是这个命令拉代码:git pull --rebase

      git stash

      stash命令可用于临时保存和恢复修改

      git reflog

      显示当前分支的最近几次提交

      git blame filepath

      git blame 记录了某个文件的更改历史和更改人,可以查看背锅人,哈哈

      git remote

多线程面试题Redis
Loading...