git常用命令梳理

说明

一般情况下掌握如下大部分git常用命令就够用了。如果执行git命令出错,git一般会给出错误提示和解决方案来处理该错误。

git clone

从git仓库克隆代码到本地:

git clone ssh://git@xxx/xxxx/xxx/demo_app.git
git clone https://gitxxx/xxxx/xxx/demo_app.git

说明:git仓库一般提供了http和ssh两种克隆地址。其中ssh克隆方式需要提前将自己本机生成的ssh key的公钥配置到git仓库上。

git init

一般情况下,git仓库创建一个新的git时,这一步就已经做好了。本地只需要通过git clone即可把代码克隆到本地。

git status

获取当前git分支的状态。包括普通状态、提交状态、错误状态等等信息。

git log

  • 显示当前提交记录信息。

  • 显示单次提交记录的修改内容。

git log xxxxxx(提交记录md5)  -p -1

注意:其中xxxxxx(提交记录md5)表示每次提交的md5值。最后-1表示一条记录。

  • 显示name(提交者名称)提交的记录,类似于对name(提交者名称)进行过滤。
git log --author name(提交者名称)

git pull

  • 从git仓库(origin)拉取代码到本地。
    一般需要清理当前git分支状态,否则很容易因为本地有修改导致代码冲突而拉取失败。
    说明:git pull是git fetch和git rebase的合用。

  • 可以在非master分支上拉取master提交内容。比如dev分支:

git pull origin master

说明:该命令可以把master上提交拉取到本地dev分支,然后通过git push origin dev可以推送到git仓库(origin)dev分支,这样dev分支就和master保持一致了。

git diff

显示修改内容。包括增加、删除、改动几个部分。

git add

添加修改内容。
这里可以添加单个文件,也可以添加所有文件。

git add .
git add /xx/xx/file.js
git add /xx/xx/*

说明:第一个添加所有改动,第二个添加单个文件,第三个添加/xx/xx/路径下所有修改。

git commit

  • 提交修改。
git commit -m "feat : xxx : add new file"
  • git commit -a -m
    直接包含git add步骤,即提交修改时可以省略git add步骤。
git commit -a -m "feat : xxx : add new file"

git push

从本地分支将代码推送到git仓库(origin)。
一般如果不在master分支,需要推送时,需要跟该分支名称。比如当前分支为dev分支,则命令为:

git push origin dev

注意:只有经过git add和git commit之后,git push才有有效的推送内容。

git branch

  • 获取当前分支名称:
MacBook-Pro xxx-app-demo % git branch
  dev
* master

说明:这个时候会把已经切过的分支也会显示出来。并在当前分支前显示一个“*”号。

  • 如果需要显示所有的分支,则执行:
git branch -a

说明:这个不仅仅会显示本地的分支,还会把git仓库(origin)分支也一起显示出来。

  • 可以通过git branch -d来删除分支。
git branch -d branch_name(分支名称)

git checkout

  • 这是一个很牛逼的多功能命令。

  • 可以清理当前分支,即将当前分支的修改内容清理掉。该命令可以结合git clean -df一起来做清理工作。

git checkout .
git checkout /xx/xx/xx.js
  • 可以将分支切换到具体提交记录为锚点位置,这个可以接tag/提交记录等
git checkout tag_1.0.0
git checkout xxxxxxx(提交记录)
  • 可以新建分支。
git checkout -b new_branch

git clean -df

将新增文件从磁盘删除。

git reset

回退。

git reset --hard HEAD
git reset --hard HEAD~
git reset --hard xxxxx(提交记录)

说明:HEAD表示当前最后一次提交记录。~表示HEAD的前一次提交记录。~~表示HEAD的前第二次提交记录。

git revert

回滚。
和回退不一样。这个是将HEAD或者xxxxxx(提交记录)撤销修改后再当作一次提交记录。

git revert xxxxxx

git merge

合并分支。比如master分支合并dev分支。

git merge dev

注意:如果合并有冲突,这个时候不要做git rebase操作,而要根据合并冲突进行修改,再提交即可。

git tag

  • 打tag。

  • 提交tag。如下提交所有打的tag。

git push --tags

git cherry-pick

将某一条提交记录合入到当前分支。

git cherry-pick xxxxx(提交记录)

这个操作非常好用。特别适合在切分支提交应用商店上架审核,然后被拒绝需要做整改时使用了:master分支和切的分支两边同步修改的提交记录。

git stash

  • 将修改提交暂存区。也可以指定部分文件提交暂存区。
    比如将修改提交暂存区,然后做其他操作。执行完后通过git stash pop释放出来。

  • git stash pop
    将修改从暂存区释放出来。

git fetch

拉取代码。和git pull相比,缺少git rebase步骤。

git rebase

同步git tree,即同步各分支时间线到同一条线上来。

git获取branch名称简称:

该命令一般用于自动化打包脚本:比如切到非master分支打包的情况,就可能需要获取到当前分支的简称。

  • 命令如下:
git symbolic-ref --short HEAD

git remote -v

获取当前项目git仓库地址(即git clone克隆地址)。

git切到对应的tag

git切到某个commit

git restore

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
    modified:   .eslintrc.js
    modified:   .stylelintrc.js
    modified:   babel.config.js

git module

git里面比较难的就是git module相关的命令了。这个涉及到模块组件间的协同。有兴趣的可以自行研究一下其中的奥妙。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容