zoukankan      html  css  js  c++  java
  • git相关整理


    title: git相关整理
    toc: false
    date: 2018-09-24 20:42:55


    git merge 和 git merge --no--ff有什么区别?

    git merge命令用于合并指定分支到当前分支。默认情况下,执行快进式合并(fast-farward merge),直接通过把master指向feature来将两个分支并为一个分支,只保存master的分支信息。

    git merge --no--ff执行正常合并,在master分支上生成新的节点,就可以保存之前的feature分支历史。能够更好的查看merge历史和branch状态。

    因此为了保证版本演进的清晰,推荐使用--no--ff的方法。

    img

    Image result for git merge -- no ff

    工作区与暂存区

    工作区:workspace,git管理的当前文件夹

    暂存区:stage/index,工作区与分支之间的中转站

    工作区与暂存区

    git add——将修改添加到暂存区

    git checkout -- filename——撤销工作区中指定文件的修改

    git checkout . ——撤销工作区中当前目录中的所有更改

    git rm --cached filename——删除暂存区中的指定文件,但保留本地文件

    git rm filename——删除暂存区中的指定文件,同时删除本地文件

    版本回退

    reset

    git reset --soft ——只回退commit,暂存区和工作区不做出改变。

    git reset --hard——回退commit、暂存区、工作区,即本地的代码也会回退,慎用!

    git reset --mixed——回退commit和暂存区,以上两种情况的中和版本,reset不带参数的默认方式

    关于版本:

    HEAD——当前版本

    HEAD^——上一个版本

    HEAD^^——上上一个版本

    HEAD^^^——上上上一个版本

    HEAD~n——上n个版本

    也可以使用commitID

    一个栗子:

    git reset --soft HEAD^

    只回退commit到上一个版本

    reset回退不会保留回退到的版本之后的所有commit,因此在push时会因为落后于远程commit而报错,若想强制覆盖,可以为push命令加上--force-f来进行强制操作。

    revert

    revert用一个新提交来消除一个历史提交所做的所有修改,即

    revert不影响以前的所有commit

    git revert HEAD // 撤销最近一次提交
    git revert HEAD^ // 撤销上上次提交
    git revert commitID // 撤销指定id的提交
    

    回退暂存区的修改

    git reset HEAD,命令具体含义看上边的版本回退。

    删除分支

    git branch -d BranchName——删除本地分支

    git push origin --delete BranchName/git push origin :BranchName——删除远程分支

    git pull 与 git fetch 区别

    git fetch——拉取远程分支并更新到origin/BranchName分支中

    git pull——拉取远程分支后与本地当前分支合并

    git fetch origin master // 保存在本地'origin/master'分支中
    git merge origin/master // 将fetch到的分支合并到本地的当前分支中
    
    git pull origin master // 以上两句命令相当于这一句命令
    

    合并时出现冲突的解决办法

    git merge显示冲突时,

    使用git status查看冲突的文件,

    冲突部分用<<<<<<< ======= >>>>>>>标示,

    编辑冲突的文件:

    // ……
    
    <<<<<<< HEAD // 合并当前分支的内容
    // ……
    =======
    // ……
    >>>>>>> BranchName // 合并前要合并的分支的内容
    
    // ……
    

    然后git add冲突文件发现成功了!秒啊!

  • 相关阅读:
    网格形变
    网格简化
    无法打开包括文件: “QWidget”: No such file or directory
    遇到一个 bug svg 抖动的解决方案
    echarts-gl 遇到一个错误 groupGL 未定义
    鼠标操控三维视角
    鼠标控制3维操作 不知道能不能获得一些灵感
    tensorflow 安装
    Codeforces Round #541 (Div. 2) B.Draw!
    Codeforces Round #541 (Div. 2) A.Sea Battle
  • 原文地址:https://www.cnblogs.com/zmj97/p/10161660.html
Copyright © 2011-2022 走看看