• git 常用命令及git使用原理自我理解


    git常用命令:
     
    git merge 和本地文件存在冲突,如何不commit的情况下能够merge(避免造成 merge commit,给代码review造成额外工作量)
    // 把本地修改暂存隐藏起来
    git stash
    // pop出最近的一次暂存
    git stash pop
     
    如何从本地切换到1个remote不存在的新分支,并commit+push
     
    git checkout -b your-new-branch
    git add <files>
    git commit -m <message>
    git push --set-upstream origin user-console
     
     
    git切换到远程存在的分支
    git checkout -b v0.9rc1 origin/v0.9rc1
     
    git添加和删除upstream
    //添加新的upstream
    git remote add upstreamName upstreamUrl
    //fetch upstream
    git fetch upstreamName
    //merge upstream code into codebase
    git merge upstreamName/branchName
     
    //删除已存在的upstream
    git remote remove upstreamName
     
    //查看当前所有upstream及其地址
    git remote -v
     
     
    git回退版本,有两个命令,一个是git revert,一个是gitreset
    revert的原理是把代码更新到要回退的那个版本,并提交一个新的commit,老的所有commit history都不丢失。
    git reset的原理是直接清除掉不想要的几个commit,
    git reset --soft表示删除commit后,commit的内容会进入到本地代码中可以重新修改提交
    git reset --hard表示删除commit以及commit的内容,不可恢复
    例如 git reset HEAD~1 --soft  表示删除最近一个commit,其内容进入本地代码中重新修改提交
     
    关于merge没有冲突但是会产生多余commit的问题。
    git pull或merge的时候,如果有更新,并且在merge之前本地进行了没有push的代码commit,会造成本地repo和origin repo的diverge,从而这次merge会被当做一次分支合并处理。为避免这种情况发生,首先是尽量多的commit;其次是在每次stage+commit之前可以fetch+merge一下,防止本地产生和远程diverge的commit。
     
    git原理自我理解
    git个人理解代码分为如下几个区域:A.本地代码  B.暂存区 C.本地repo D.remote repo本地copy  E.remote repo
    基于git的分布式的理念,没有一个统一的中央,每个开发者本地有一份repo的全拷贝,即上述D.
    1.D和E之间通过git fetch命令从E->D单向数据传输。
    2.git merge命令会从D向C中的当前工作分支进行同步,如果没有冲突会直接同步更新到B暂存区和A本地代码中;有冲突则需要处理冲突。
    3.git pull相当于fetch + merge
    4.git add 把代码从A本地添加到B暂存区
    5.git commit 从B暂存区合并到C本地repo并生成commit id
    6.git push 从C本地repo合并到Dremote repo本地copy并同步到E remote Repo
    7.git status 获取当前A和B的状态,以及C相比于D之间commit的前进和落后关系,不会联网和E进行比较。
    8.git diff 不加参数默认本地代码A同B暂存区进行比较;加了分支例如develop和C中的develop进行比较;加了origin/develop和D中的分支进行比较;应该不能和E进行比较。
  • 相关阅读:
    适配器模式
    第五章项目:QuickHit
    试题分析(第二套)
    试题分析(第一套)
    新闻发布系统(分页显示)
    jsp九大内置对象
    文件上传
    jsp统测
    新闻发布系统(首页)
    URL和URI的区别
  • 原文地址:https://www.cnblogs.com/yujunhua/p/13476646.html
Copyright © 2020-2023  润新知