• git学习(1)


    一、git fetch 和git pull 的差别

    1、git fetch 相当于是从远程获取最新到本地,不会自动merge,如下指令:

     git fetch orgin master //将远程仓库的master分支下载到本地当前branch中
    
     git log -p master  ..origin/master //比较本地的master分支和origin/master分支的差别
    
     git merge origin/master //进行合并

    也可以用以下指令:

    git fetch origin master:tmp //从远程仓库master分支获取最新,在本地建立tmp分支
    
    git diff tmp //將當前分支和tmp進行對比
    
    git merge tmp //合并tmp分支到当前分支

     

    2. git pull:相当于是从远程获取最新版本并merge到本地

    git pull origin master

    git pull 相当于从远程获取最新版本并merge到本地

    在实际使用中,git fetch更安全一些

    3、两者区别的详细解释

    https://blog.csdn.net/weixin_41975655/article/details/82887273

    二、git将多个commit合并成一个

    出处:https://www.jianshu.com/p/964de879904a

    在执行git commit命令之后,如果之前已经有了很多次commit,想将多次commit历史记录合并起来,使得history不要太多太乱,可以采用git log查看历史记录,然后用git rebase进行合并。

    git log -l 3 #查看log记录
    git rebase -i HEAD~2  # 合并前两个commit

    首先假设我们有3个 commit

    git-log-origin.png

    我们需要将 2dfbc7e8c4e858b5 合并成一个 commit,那么我们输入如下命令

    git-rebase-i.png

    其中,-i 的参数是不需要合并的 commit 的 hash 值,这里指的是第一条 commit, 接着我们就进入到 vi 的编辑模式

    git-rebase-edit.png

    可以看到其中分为两个部分,上方未注释的部分是填写要执行的指令,而下方注释的部分则是指令的提示说明。指令部分中由前方的命令名称、commit hash 和 commit message 组成。

    当前我们只要知道 picksquash 这两个命令即可。

    • pick 的意思是要会执行这个 commit
    • squash 的意思是这个 commit 会被合并到前一个commit

    我们将 c4e858b5 这个 commit 前方的命令改成 squashs,然后输入:wq以保存并退出

    git-rebase-squash.png

    这是我们会看到 commit message 的编辑界面

    git-rebase-commit-message.png

    其中, 非注释部分就是两次的 commit message, 你要做的就是将这两个修改成新的 commit message。

    git-rebase-commit-message-combination.png

    输入wq保存并推出, 再次输入git log查看 commit 历史信息,你会发现这两个 commit 已经合并了。

    git-rebase-log-new.png

    注意事项:如果这个过程中有操作错误,可以使用 git rebase --abort来撤销修改,回到没有开始操作合并之前的状态。

    合并之后就可以进行git push提交了。
     
  • 相关阅读:
    Appium+python自动化2-环境搭建(下)【转载】
    Appium+python自动化1-环境搭建(上)【转载】
    python+requests接口自动化完整项目设计源码【转载】
    python接口自动化10-token登录【转载】
    linux_samba服务搭建
    linux_nginx反向代理
    linux_Nginx优化
    linux_mysql安装
    linux_http协议
    linux_nginx_rewrite
  • 原文地址:https://www.cnblogs.com/Lee-yl/p/11004748.html
Copyright © 2020-2023  润新知