• 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 分支 - 分支的新建与合并


  • 相关阅读:
    [Coding Made Simple] Coin Changes Minimum Number of Coins
    [Coding Made Simple] Egg Dropping
    015_配置免密登录
    014_编写批量修改扩展名脚本,如批量将 txt 文件修改为 doc 文件
    013_使用 user.txt 文件中的人员名单,在计算机中自动创建对应的账户并配置初始密码
    012_使用死循环实时显示 eth0 网卡发送的数据包流量
    011_9*9 乘法表(编写 shell 脚本,打印 9*9 乘法表)
    010_编写脚本测试 192.168.4.0/24 整个网段中哪些主机处于开机状态,哪些主机处于关机状态
    09_编写脚本,实现人机<石头,剪刀,布>游戏
    08_依次提示用户输入 3 个整数,脚本根据数字大小依次排序输出 3 个数字
  • 原文地址:https://www.cnblogs.com/linuxAndMcu/p/13650871.html
Copyright © 2020-2023  润新知