• Git 常用操作


    Git 的最基础使用可以查看我的另一篇博客:使用Git在GitHub上托管程序

    下面是讲 Git 使用的一些常用操作,更多请查看:git-scm教程

    如何定位到历史版本

    想我们在写代码时候,数次修改并提交 commit,如果在这个过程中我们后悔了,想回到当初的某一个 commit 点应该如何实现呢?

    三种方式:

    1】以目标 commit 为基础新创建一个分支,并切换到分支上去,这样并不破坏 base 分支上的任何提交内容,包括你目标 commit 之前的提交,以及目标 commit 之后的提交。

    例子:你有一个 base 分支,上面有 1/2/3/4 四个 commit,你现在突然后悔提交了 3/4 两个 commit,或者某种原因你需要以 2commit 为基础,进行另外某个功能的开发。这时候方法 1 执行git checkout 2commitID -b div就是以 base 分支的 2commit 为基础,创建了子分支 div,并切换到子分支上去,原来的 base 分支并没有受到影响,这时候你也就能在子分支 div 上看到你的历史代码了。


    2】在当前分支上撤销目标 commit 之后的所有提交,类似于系统还原。

    例子:还是上面的 base 分支有 1/2/3/4 个 commit,这时候执行git reset --hard 2commitID就是放弃 3/4commit,回退到 2commit,这时候你也能看到历史代码,但是在 2 commit 之后的 3/4commit 就永久的丢失了。


    3】以执行过的指令为目标,进行撤销操作,类似于第二种方法。

    // 方法1
    git log (branch) // 查看commit的ID号
    git checkout commitId -b 新branch名称 // (在指定commit的基础上创建新分支)
    
    // 方法2
    git log (branch)
    git reset --hard (commit id) // 版本回滚
    
    // 方法3
    git reflog 
    git reset --hard (command id) // 命令撤销
    

    如果刚开始接触 git,对 git 的操作不熟悉,只习惯图形界面,可以参考:github代码如何定位到历史版本(历史commit点)

    git commit 之后,想撤销 commit

    写完代码后,我们一般这样:

    git add --all
    git commit -m "本功能全部完成"
    

    执行完 commit 后,想撤销 commit,可以执行:

    git reset --soft HEAD^
    

    这样就成功的撤销了你的 commit,注意,仅仅是撤回 commit 操作,您写的代码仍然保留。HEAD^ 的意思是上一个版本,也可以写成 HEAD~1。如果你进行了 2 次 commit,想都撤回,可以使用 HEAD~2。

    参数说明:

    • --mixed

      意思是:不删除工作空间改动代码,撤销 commit,并且撤销git add --all操作。这个为默认参数,git reset --mixed HEAD^git reset HEAD^效果是一样的。

    • --soft

      不删除工作空间改动代码,撤销 commit,不撤销 git add。

    • --hard

      删除工作空间改动代码,撤销 commit,撤销 git add。注意完成这个操作后,就恢复到了上一次的 commit 状态。

    补充:

    顺便说一下,如果 commit 注释写错了,只是想改一下注释,只需要:

    git commit --amend
    

    此时会进入默认 vim 编辑器,修改注释完毕后保存就好了。

    git 合并分支

    假如我们现在在 dev 分支上,刚开发完项目,执行了下列命令:

    git  add .
    git  commit -m '提交的备注信息'
    git  push -u origin dev
    

    想将 dev 分支合并到 master 分支,操作如下:

    // 1.首先切换到 master 分支上
    git checkout master
    // 2.如果是多人开发的话 需要把远程 master 上的代码 pull 下来
    git pull origin master
    // 3. 然后我们把 dev 分支的代码合并到 master 上
    git merge dev
    // 4.然后查看状态
    git status
    // 5.执行提交命令
    git push origin master
    

    解决合并冲突:

    有时候合并操作不会如此顺利。 如果你在两个不同的分支中,对同一个文件的同一个部分进行了不同的修改,就会产生合并冲突。

    Git 会在有冲突的文件中加入标准的冲突解决标记,这样你可以打开这些包含冲突的文件然后手动解决冲突。

    在你解决了所有文件里的冲突之后,对每个文件使用git add命令来将其标记为冲突已解决。 。如果你想使用图形化工具来解决冲突,你可以运行git mergetool,该命令会为你启动一个合适的可视化合并工具。


    参考:

    github代码如何定位到历史版本(历史commit点)

    git commit之后,想撤销commit

    git合并分支(一看就懂)

    3.2 Git 分支 - 分支的新建与合并


  • 相关阅读:
    为什么LIKELY和UNLIKELY要用两个叹号
    vuex-persist数据持久化存储插件
    【ejabberd】安装XMPP服务器ejabberd(Ubuntu 12.04)
    Dynamics CRM2013 picklist下拉项行数控制
    jdk1.8新日期时间类(DateTime、LocalDateTime)demo代码
    webpack插件解析:HtmlWebpackPlugin是干什么的以及如何使用它
    marked实现
    Vue组件使用、父子组件传值
    VUE启动报错
    nodejs创建vue项目
  • 原文地址:https://www.cnblogs.com/linuxAndMcu/p/13650871.html
Copyright © 2020-2023  润新知