• git 常用命令总结


    git 删除分支和代码回滚

    1. git 删除分支

      本地分支删除

     git branch -D branch
    

      远程分支删除

     git push origin :branch  (origin 后面有空格)
    

    2. 代码回滚

      指的是将代码库某分支退回到以前的某个commit id

      本地代码回滚

      git reset --hard commit-id  -->回滚到commit-id,将commit-id之后提交的commit都去除
      或
      git reset --hard HEAD~3     -->将最近3次的提交回滚
    

        远程代码回滚

       这个是重点要说的内容,过程比本地回滚要复杂

      应用场景:自动部署系统发布后发现问题,需要回滚到某一个commit,再重新发布

      原理:先将本地分支退回到某个commit,删除远程分支,再重新push本地分支

      操作步骤如下:

      git checkout the_branch
      git pull
      git branch the_branch_backup     //备份一下这个分支当前的情况
      git reset --hard the_commit_id    //把the_branch本地回滚到the_commit_id
      git push origin :the_branch      //删除远程 the_branch
      git push origin the_branch       //用回滚后的本地分支重新建立远程分支
      git push origin :the_branch_backup //如果前面都成功了,删除这个备份分支
    

    git 删除远程文件或文件夹

    git rm -r --cached a/2.txt   //删除 a目录下的 2.txt 文件,删除 a目录: git rm -r --cached a
    git commit -m "删除a目录下的2.txt文件" 
    git push
    

    说明:

      用 -r 参数删除目录,  git rm --cached a.txt 删除的是本地仓库中的文件,且本地工作区的文件会保留且不再与远程仓库发生跟踪关系,如果本地仓库中的文件也要删除则用:git rm a.txt

    git 切换远程分支

    git clone 命令只能 clone 远程仓库的 master 分支,无法 clone 所有分支,想要 clone 之后切换到想要的分支上的解决办法如下:

      1. 进入或者创建一个干净的目录,假设为 javaProjects

      2. cd javaProjects

      3. git clone http://github.com/elastic/elastisearch.git,这样在 javaProjects 目录下得到一个 elasticsearch 子目录

      4. cd elasticsearch

      5. git branch -a ,含义是列出所有分支的名称

      6. git checkout -b dev origin/dev, 作用是 checkout 远程仓库的 dev 分支,在本地起名为 dev 分支,并切换到本地的 dev 分支上(这个命令很重要)

    git 分支查看和切换

      本地分支查看

      git branch
    

      远程分支查看

      git branch -a
    

       分支切换(从当前分支切换到分支 test)

      git branch test
    

    git 拉取远程分支(本地不存在该分支)

      git fetch origin 远程分支名x:本地分支名x
    

       使用该方式会在本地新建分支x,但是不会自动切换到该本地分支x,需要手动checkout。

      git checkout -b 本地分支名x origin/远程分支名x
    

       使用该方式会在本地新建分支x,并自动切换到该本地分支x。

    git 代码合并

      1. 假设当前分支为 test,你修改完一个文件后提交到本地和远程

      git commit -m 'fix ik tokens query bug'
      git push
    

      2. 切换到 master 分支,更新 master 上最新代码到本地

      git checkout master
      git pull
    

      3. 切换回 test 分支,并合并刚才你下载最新 master 的本地分支 : git merge master

      git checkout test
      git merge master
    

    git 状态查询

      1. 当前状态查询

      git status

      2. 查看某个具体文件的修改内容

      git diff apps/search/travelnote/facade/CommonUtil.php 
    

      3. 查看历史提交记录

      git log
    
  • 相关阅读:
    ASP.NET中Cookie编程的基础知识
    一道编程题
    软件开发一点心得
    迅雷产品经理笔试题
    常用JS 1
    设计模式
    整理思路
    抽象工厂模式 Abstract Factory
    单件模式(Single Pattern)
    序列化
  • 原文地址:https://www.cnblogs.com/liang1101/p/7657604.html
Copyright © 2020-2023  润新知