• git操作指令


    |--git命令
      |--本地仓库操作
        |--查看已操作的命令: git reflog (可通过此命令找回相应版本的commit id)

        |--查看版本库状态: git status

        |--添加到缓冲区: git add file

        |--上传至版本库: git commit -m"说明文字"

        |--diff版本库最新的: git diff HEAD -- file

        |--查看log: git log
          |--查看简单log: git log --pretty=oneline
          |--log缩写:git log --pretty=oneline --abbrev-commit

        |--回退版本: git reset --hard HEAD^ (两个版本就是"HEAD^^",100个版本就是"HEAD~100")
          |--回退至某个版本: git reset --hard 5d91ab2

        |--撤销修改: (工作区->缓冲区->版本库)
          |--直接丢弃工作区的所有修改,取回最新版本: git checkout HEAD file (与“reset”不同,这只是下载到工作区,没有上传版本库,也可以取倒数第二个版本"HEAD^^")
          |--修改后,未添加到缓冲区,取回最新版本: git checkout -- file (一定要加上“--”)
          |--添加到缓冲区后,又修改了此文件,想取回缓冲区的内容: git checkout -- file (一定要加上“--”)
          总结:运行"git checkout -- file"时,会最先寻找缓冲区,如果缓冲区有过修改则取回缓冲区最新的,否则取版本库最新的

        |--删除文件:
          |--工作区删除: git rm file
          |--版本库删除: 工作去删除后执行, git commit -m"说明"

        |--找回删除文件:
          |--工作区删除找回: git checkout HEAD file (找回最新版本)
          |--版本库删除找回: git checkout HEAD^ file (找回上一版本中的文件,因为最新的版本里没有此文件了)
          |--以往版本库找回:git checkout HEAD~100 file 或者 git checkout id(某版本id) file

      |--远程仓库操作
        |--创建SSH Key: ssh-keygen -t rsa -C "youremail@example.com"
        |--第一次上传: git push -u origin master (本地的master分支和远程的master分支关联起来)
        |--上传本地最新修改: git push origin master
        |--克隆远程库: git clone git@github.com:michaelliao/gitskills.git

      |--分支操作
        |--查看分支: git branch
        |--创建分支: git branch <name>
        |--切换分支: git checkout <name>
        |--创建+切换分支: git checkout -b <name>
        |--合并某分支到当前分支: git merge <name> (一般不这样写,用下面的)
        |--合并并记录: git merge --no-ff -m"message" <name> (不用fast forward模式)
        |--删除分支: git branch -d <name>
        |--查看分支合并图: git log --graph --pretty=oneline

      |--主线修复Bug
        |--场景:在dev作业的过程中,任务未完(未提交),突然需要修改主线的bug
          ①储存dev中的文件: git stash
          ②切到主线,创建临时分支: git checkout -b issue-101
          ③bug解决完后,切换至主线,完成合并: git add file
                            git commit -m"message"
                            git checkout master
                            git merge --no-ff -m"message" issue-101
                            git branch -d issue-101
          ④切回dev,取回储存内容: git checkout dev
                      git stash apply (或者使用"git stash pop",回复的同时删除存储,否则要手动删除"git stash drop",用"git stash list"查看所有存储)
          ⑤如要同步主线最新代码: git add file
                      git commit -m"message"
                      git merge master(这里可能会有冲突,有的话就需要手动修改,再提交)

      |--feature分支
        |--开发一个新的功能,最好新建一个分支,类似于修改bug时需要创建分支
        |--如果新功能在合并前确认取消了,删除分支: git branch -D <name>

      |--多人协作

      |--标签管理
        |--创建标签: git tag <name> -m"message"(默认HEAD,也可在后加指定某个commit id)
        |--标签信息: git tag -a <tagname> -m"message" (默认HEAD,也可在后加指定某个commit id)
        |--PGP签名标签: git tag -s <tagname> -m"message"
        |--查看所有标签: git tag
        |--推送本地标签: git push origin <tagname>
        |--推送全部未推送的标签: git push origin --tags
        |--删除一个本地标签: git tag -d <tagname>
        |--删除远程标签: git push origin :refs/tags/<tagname>

  • 相关阅读:
    代理与反向代理
    Spring Batch 远程分区和远程分块的区别
    XWIKI部署安装
    想写一些与技术无关的
    1104报表
    ARQC与ARPC的生成和校验方法
    学习开源框架的一些总结
    linux java -version 和 javac -version 不一致
    spring boot 概念
    Unable to open socket file: target process not responding or HotSpot VM not loaded
  • 原文地址:https://www.cnblogs.com/wujunnan/p/6783633.html
Copyright © 2020-2023  润新知