• Git的常用撤销技巧与解决冲突方法


    git checkout . #本地所有修改的。没有的提交的,都返回到原来的状态

    git stash #把所有没有提交的修改暂存到stash里面。可用git stash pop回复。
    git reset --hard HASH #返回到某个节点,不保留修改。
    git reset --soft HASH #返回到某个节点。保留修改

    撤销Git add操作

     
    1. git reset HEAD <file>   # 取消add操作并保留修改    
    2. git checkout -- <file>  # 若继续该命令,则会删除掉刚刚的修改内容  

    撤销Git commit操作

    1. git reset --soft <commit_id>   #可以回退到某个commit并保存之前的修改  <commit_id>从git log中取,取前7位即可    
    2. git reset --hard <commit_id>   #回退到某个commit不保留之前的修改    

    撤销Git push操作

    1. git revert <commit_id>   

    原理: git revert 会产生一个新的 commit,它和指定 SHA 对应的 commit 是相反的(或者说是反转的)。 任何从原先的 commit 里删除的内容会在新的 commit 里被加回去,任何在原先的 commit 里加入的内容会在新的 commit 里被删除。这是 Git 最安全、最基本的撤销场景,因为它并不会改变历史 — 所以你现在可以 git push 新的“反转” commit 来抵消你错误提交的 commit。


    Git:代码冲突常见解决方法


    如果系统中有一些配置文件在服务器上做了配置修改,然后后续开发又新添加一些配置项的时候,
    在发布这个配置文件的时候,会发生代码冲突:
    error: Your local changes to the following files would be overwritten by merge:
    protected/config/main.php
    Please, commit your changes or stash them before you can merge.

    如果希望保留生产服务器上所做的改动,仅仅并入新配置项, 处理方法如下:
    git stash
    git pull
    git stash pop
    然后可以使用Git diff -w +文件名 来确认代码自动合并的情况.


    反过来,如果希望用代码库中的文件完全覆盖本地工作版本. 方法如下:
    git reset --hard
    git pull

  • 相关阅读:

    第一次发贴,也是在看了首页吵架贴后有感,也给博客园提个提议
    【把玩信息图之标签云】看看我一年的邮件在扯什么
    VS发布Web时自动调用YUICompressor批量压缩JS、CSS
    用JavaScript实现自己的DOM选择器
    一键发布应用了seajs的asp.net项目
    在JavaScript中应用单例模式
    Qt 资料大全
    C#的不足(1):匿名类型的不足之处
    LINQ解析:LINQ to Objects简介
  • 原文地址:https://www.cnblogs.com/wihainan/p/6010895.html
Copyright © 2020-2023  润新知