• git学习笔记(1)


    设置git分支的跟踪关系

    • 新建一个分支时设置跟踪关系

      git  checkout -b new_branch_name  [--track] origin/remote_branch_name

      --track选项可以省略

    • 设置已有分支和远端分支的跟踪关系

      git  branch -u  origin/remote_branch_name  local_branch_name

      注意:-u选项是--set-upstream-to的简写,因此上面这条命令可以写作

      git  branch --set-upstream-to=origin/remote_branch_name  local_branch_name

      local_branch_name可以省略,默认值为当前分支

    获取远程分支信息

    • 拉取远程仓库分支信息

      git fetch origin
    • 查看所有分支(本地和远端)

      git branch -a
    • 切换远程默认分支

      git remote set-head origin remote_branch_name
    • 本地建立远程分支

      git push origin local_branch_name:remote_branch_name

      remote_branch_name即新建的远端分支

    • 本地删除远端分支

      git push origin --delete remote_branch_name

    rebase工作流

    • 与merge的区别

      本地两个分支 一个我的分支 mywork 一个主分支 master

      现在我修改的部分要合并到 master 上,可以有两种选择 merge 或者 rebase

      两者的最后得到的结果是一样的,但是区别是 rebase 一个两个分支 就各位了一个分支,mywork合并前所有的 patch也就是commit 消失了

      而merge 则还是两个分支,只不过在merge后这个点交汇image

    • 如何rebase

      首先本地代码库不是最新的,所以先从远端仓库pull一下

      git checkout master`
      git pull

      然后 开始切换到mywork分支开始rebase

      git checkout mywork
      git rebase master

      这个时候就开始rebase 了,一般情况下rebase都是会有冲突的,详细查看冲突可以用命令git status然后就会显示哪个文件有冲突,然后打开有冲突的哪个文件,会发现有一些“<<<<<<<”, “=======”, “>>>>>>>” 这样的符号。

      原来的更改是master分支上的更改,传入的更改是工作分支mywork分支上的更改;

      “<<<<<<<” 表示冲突代码开始

      “=======” 表示mywork与master冲突代码分隔符

      “>>>>>>>" 表示冲突代码的结束

      <<<<<<< 
      所以这一块区域mywork的代码

      ======= 
      这一块区域master的代码


      >>>>>>>

      rebase 和 merge的另一个区别是rebase 的冲突是一个一个解决,如果有十个冲突,先解决第一个,然后用命令

      git add -u 
      git rebase --continue

      继续后才会出现第二个冲突,直到所有冲突解决完,而merge 是所有的冲突都会显示出来。 另外如果rebase过程中,你想中途退出,恢复rebase前的代码则可以用命令

      git rebase --abort

      所以rebase的工作流就是

      git rebase 
      while(存在冲突) {
         git status
         找到当前冲突文件,编辑解决冲突
        git add -u
         git rebase --continue
         if( git rebase --abort )
             break;
      }

      最后冲突全部解决,rebase成功!!

      然后我需要把本地的mywork 分支push 到远端mywork分支上然后再给远端的master分支 PR。

    总结

    • rebase工作流:

      git rebase 
      while(存在冲突) {
         git status
         找到当前冲突文件,编辑解决冲突
        git add -u
         git rebase --continue
         if( git rebase --abort )
             break;
      }
    • merge工作流

      git pull  (或fetch && merge) 
      编辑冲突文件
      git push


  • 相关阅读:
    linux 下查看文件个数及大小
    weblogic日志小结
    Excel数据通过plsql导入到Oracle
    Linux查看外网IP
    linux挂载/卸载优盘
    git版本回退
    linux修改文件所属用户、用户组
    retry.RetryInvocationHandler (RetryInvocationHandler.java:invoke(140))
    Hadoop切换namenode为active
    Netty使用LineBasedFrameDecoder解决TCP粘包/拆包
  • 原文地址:https://www.cnblogs.com/CaesarKingW/p/10943053.html
Copyright © 2020-2023  润新知