开发中最经常使用的 10 个 Git 命令!必定要掌握!

这是我参与更文挑战的第 15 天,活动详情查看: 更文挑战前端

Lynne,一个能哭爱笑永远少女心的前端开发工程师。身处互联网浪潮之中,热爱生活与技术。git

前言

转眼间算上实习都入职半年多了,但就在一两个月前都仍是会由于代码合并冲突,合并致使文件所有改动等问题而要求助同事,发现同事也仍是会百度(❦ω❦),也是,真正的大佬应该极少犯我这种低级错误。可是,几回错误下来发现这种问题仍是要记忆下,不然不只容易出错还显得...很笨(❦ω❦)就是...这我的怎么连Git都不会啊。github

明明我在找到工做前也是会常常往 github 上推一推没什么用的代码的...web

概念

前提

工做区有一个隐藏目录.git,这个不算工做区,而是Git的版本库。缓存

Git的版本库里存了不少东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为咱们自动建立的第一个分支master,以及指向master的一个指针叫HEAD。markdown

提交流程

咱们开发提交代码到发布的时候,主要有如下几步:post

  • git add把文件添加进去,实际上就是把文件修改添加到暂存区;fetch

  • git commit提交更改,实际上就是把暂存区的全部内容提交到当前分支;url

  • git push将当前本地分支的内容推到远程分支;spa

  • git merge将对应远程分支合到master。

代码提交问题

问题一:工做区代码非正常改动

问题描述:git add后发现全部文件发生变更---缘由是-文件权限修改 or 文件换行符改动致使

须要作如下修改:

git config --global core.filemode false

git config --global core.autocrlf

问题二:缓存区代码有错误

场景一:已add未commit提交

git撤销暂存区部分文件 ---> git restore 文件名

git撤销暂存区所有文件 ---> git restore .

场景二:已commit未push

git撤销未提交,保留工做区) ---> git reset --soft HEAD^1 将版本库回退一个版本,soft修改版本库、保留暂存区、工做区

git撤销未提交,清空工做区) ---> git reset --hard HEAD^1 将版本库回退一个版本,hard修改版本库、暂存区、工做区

git撤销未提交,清空工做区) ---> git reset --hard 版本号(commit) 将版本库回退到对应版本,hard修改版本库、暂存区、工做区

场景三:已push

git撤销已push内容,push内容不可找回)---> git revert

git撤销已push内容,push内容可找回) ---> git reset --hard 版本号(commit) 将版本库回退到对应版本,hard修改版本库、暂存区、工做区

二者区别:

  • reset将撤销点以后的操做都回退到暂存区,HEAD向后移动一下

  • revert撤销提交,HEAD继续前进

其余问题

git branch -a ----> 查看全部分支信息(本地)

git fetch ----> 查看不到同事协做分支,获取分支信息

git pull ----> 查看不到同事协做分支,获取分支内容

总结

熟能生巧,多犯几回错总会记住的...以上 10 个 git 命令就是我工做以来用的最多的了...