git常用指令总结

前言

  Git 作为开发中最常用的代码版本控制工具,本文来总结下常见的使用指令。

正文

  1、git 仓库常见概念

  2、常用命令

  (1)git init 初始化本地项目

  将本地项目初始化git目录,在当前文件夹下回多出 .git 后缀的文件

  (2)git clone 将远程仓库克隆到本地

  与 git init 命令相似,git init 是将当前文件夹作为本地仓库,git clone 是将远程团队协作仓库下载至本地作为本地仓库

  (3)git status 查看工作区、暂存区状态

  如下会提示当前分支,当前暂存区需要提交的内容

 

  (4)git add

  git add fileName 将名为fileNmae的文件添加到暂存区

  git add . add后面加空格加点,表示将所有文件添加到暂存区

  (5)git commit

  git commit -m "提交说明" 将暂存区的文件进行提交到本地仓库对应的分支(分支管理常常用于代码的版本控制,同样也可以为了方便多人协作,比如开发中,master表示线上分支,develop 表示开发用的分支,同样也可以在develop 分支基础上创建每个开发人员对应的分支,在开发完成后,提交到自己独立的分支,测试通过后,通过每个人的独立分支合并到 develop 分支,待develop分支测试通过的功能合并至master线上分支上线)

  提交说明需要注意以下格式:

  a、feat 表示添加新特性 ,例如:git commit -m "feat:新增微信支付功能"

  b、fix 表示修复 bug

  c、docs 表示仅仅修改了文档

  d、style 表示仅仅修改了空格、格式缩进、逗号等等,不改变代码逻辑

  e、refactor 表示代码重构,没有添加新功能或者修复bug

  f、test 表示增加测试用例

  g、chore 表示改变构建流程、或者增加依赖库、工具等

  h、revert 表示回滚到上一个版本

  (6)git fetch 和 git merge

  git fetch 将远程仓库对应分支上的最新修改下载下来,比如可以 git fetch origin master ,该命令只是把远程修改数据下载到了远程的副本仓库,并没有下在到本地仓库

  git merge master 合并master分支到当前所在分支  

  下面需要了解一下概念:

  (1)master 这个很好理解,它代表本地的某个分支名。

  (2)origin master 代表着两个概念,前面的 origin 代表远程名,后面的 master 代表远程分支名

  (3)origin/master 只代表一个概念,即远程分支名,是从远程拉取代码后在本地建立的一份拷贝,叫跟踪分支,与 本地 master 十分相似(因此也有人把它叫作本地分支)。

  (7)git pull

  将当前分支在远程仓库中的代码拉取到本地版本库并进行合并,效果相当于 git fetch + git merge,但是还是存在差异,如下:

  我们每次commit 之后会生成一个hash值,代表本地修改的版本号,然后push到远程仓库,远程仓库会记录这个hash值。git fetch 只会更新跟踪分支,(我们无法对跟踪分支直接进行操作),比如我们本地的 .git 文件夹下有 head 和 remotes 两个文件夹,分别记录本地分支和正在跟踪的分支,暂定这两个分支的hash都为1,当远程协作仓库有人提交了代码后,远程仓库最新的提交hash变为了2,在本地执行 git fetch 后,会将跟踪分支的hash变为2,但是本地分支hash还是原来的1,这时候如果执行 git merge origin/master 就会将本地的master分支hash更新为2。如果不执行git fetch 和 git merge 直接执行 git pull ,则会将本地分支和跟踪分支更新到最新的2.

  git fetch 、git merge 、git pull三者区别如下:

  (8)git push

  将本地版本库中的代码推送至远程协作仓库

  (9)git remote

  a、git remote add 远程仓库别名 远程仓库地址

  该命令建立本地版本库和远程仓库的关联,我们如果通过git init 创建本地仓库,在推送至远程协作仓库的时候,需要先添加之间的关联

  b、git remote -v 常看当前本地版本库关联的协作仓库

  (10)git branch 分支相关

  git branch 分支名 创建新分支,例如git branch dev-pay 创建dev-pay分支(默认基于master创建)

  git push 远程仓库别名 远程仓库分支名 将新增分支推至远程仓库,例如:git push origin dev-pay,如果在当前的dev-pay 修改了代码,提交时需要 git branch --set-upstream origin dev(origin 默认为远程仓库别名)

  git branch 查看本地仓库分支,* 表示当前分支

  git branch -r 查看所有远程仓库分支

  git branch -a 查看所有分支

  git branch -d 分支名 删除本地指定分支

  git push origin :分支名 分支钱加冒号代表删除远程分支

  git checkout dev-pay 切换到dev-pay分支

  a、如果想基于某指定分支创建新分支,比如基于dev-pay,需要如下命令:

  (1)git checkout dev-pay git pull 切换到dev-pay 分支并拉去最新代码

  (2)git checkout -b dev-info 创建dev-info 分支

  (3)git branch -a 查看所有分支,发现远程还没有dev-info 分支

  (4)git push origin dev-info 将本地新增分支推送到远程,再次查看就会发现远程也多了该分支

  (5)git branch --set-upstream-to=origin/dev-info 建立当前分支和远程仓库之间的分支guanlian

  b、基于某次commit hash 值255da52811720773ae627e705a6ddab6e8f9019b创建指定分支 dev-hash

  (1)git log 查看需要版本的 commit 的 hash 值

  (2)git checkout -b dev-hash 255da52811720773ae627e705a6ddab6e8f9019b 本地创建dev-hash 并切换

  (3)重复上面基于分支创建分支

  (11)git reset 和 git revert

  git log 查看每次commit 的hash值

  a、git reset

  git reset --hasd 255da52811720773ae627e705a6ddab6e8f9019b

  git add .

  git commit -m "回退"

  git push -f 强行推送到远程

  b、git revert

  git revert 255da52811720773ae627e705a6ddab6e8f9019b

  区别:给reset 会将版本回退回去,撤销之后的提交,revert 会将本地提交内容修改为原来版本的内容,作为一次新的提交

  c、将某个文件回退到某次提交

  1 查看提交历史,查看想要回退版本的版本号git log index.txt

  2 回滚某个文件到指定版本git reset 版本号 index.txt

  3 提交到本地仓库-拉取合并代码-提交到远程git commit -m '提交描述'

  4 选择该文件git checkout index.txt

  5 push到远程仓库git push

  3、派生仓库提交命令

  git add .

  git commit -m "fix:提交"

  git remote -v 查看本地关联的仓库

  git pull origin 拉取派生仓库代码到本地

  git push origin 提交本次修改的代码到派生仓库

  git remote update yaxt 更新原始仓库状态

  git pull yaxt develop 拉取原始仓库develop分支到本地

  git push origin 提交到派生仓库

写在最后

  以上就是本文的全部内容,希望给读者带来些许的帮助和进步,方便的话点个关注,小白的成长之路会持续更新一些工作中常见的问题和技术点。

 

 

 

posted @ 2022-05-20 09:05  zaisy'Blog  阅读(548)  评论(0编辑  收藏  举报