zoukankan      html  css  js  c++  java
  • git(2)----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

  • 相关阅读:
    【计算机网络】第四章 网络层(4)
    【计算机网络】第四章 网络层(3)
    【计算机网络】第四章 网络层(2)
    grunt/gulp和browserify / webpack
    JavaScript事件机制
    css基础
    javascript事件代理(delegate)原理解析
    前端学习资源
    Ubuntu14.04安装chrome
    防止表单自动填充用户名和密码
  • 原文地址:https://www.cnblogs.com/NiceCui/p/7788781.html
Copyright © 2011-2022 走看看