<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      標簽列表

      everest33

      自制力

      導航

      git 如何更改某個提交內容/如何把當前改動追加到某次commit上? git rebase

      原文地址        http://www.jianshu.com/p/8d666830e826

      【自己總結】

      0, git diff

        git diff a b 是以a為基準,把b和a的區(qū)別展示出來,即放在前面的是基準。

      1, git commit --amend  更改最近一次提交的內容

        此命令可以把當前改動追加到上一次提交中

      用法:

       

        1   #修改需要修改的地方。
        2  git add .
        3  git commit –amend,然后在出來的編輯頁面修改后保存即可,注意這里即使不保存直接退出即在vim中按<:q>也會生效。

      注:log中的日志id會改變。

       

      2, 更改某個指定commit

        ①,git rebase <指定commit的父commit> --interactive  

        ②,將需要改動的commit前面的pick 改為 edit,然后保存退出。

        ③,更改文件

        ④,git add <更改的文件>

        ⑤,git commit --amend

        ⑥,git rebase --continue

        這里如果有沖突, 需要先解決沖突:

      • 編輯沖突文件, 解決沖突
      • git add .
      • git commit --amend

        解決沖突之后再執(zhí)行git rebase --continue

      3, 將當前更改追加到某個commit上(同2只有細微區(qū)別)

        ①,git stash 保存工作空間的改動

        ②,git rebase <指定commit的父commit> --interactive

        ③,將需要改動的commit前面的pick 改為 edit,然后保存退出

        ④,git stash pop

        之后的步驟和2一樣  

        ⑤,git add <更改的文件> 

        ⑥,git commit --amend 

        ⑦,git rebase --continue 

        這里如果有沖突, 需要先解決沖突: 

      • 編輯沖突文件, 解決沖突
      • git add .
      • git commit --amend
      • 解決沖突之后再執(zhí)行git rebase --continue

        

      原文轉載如下:

       

      問題: 由于項目的版本線混亂, 導致可能需要在不同分支上切換, 而且某些功能也可能在不同分支上移動.
      一個版本可能有多個功能點, 一個版本又對應于一個分支, 如果一個功能點有多個提交, 那么當其他分支需要這個功能點時怎么辦? cherry-pick或patch都可以實現(xiàn), 但是都各有麻煩的地方: cherry-pick需要找出要移動的功能點相關的提交記錄, 而patch需要功能點的提交記錄都是連續(xù)的. 實際開發(fā)中不同功能點之間的提交記錄往往是穿插的. 如果某個功能點相關的改動只生成一個commit,這將極大的簡化功能點在分支間的移動工作. 那么是否可以實現(xiàn)改動某次提交 和 將現(xiàn)有改動追加到某次提交上 呢?

       

      下面是cherry將某個功能點從一個分支移動到其他分支的示意圖:

       


      使用cherry-pick移動某個功能點

       

      如上圖, 可以使用cherry-pick將某個功能點從branchA移動到branchB上, 步驟如下:

       

      • 切到branchB分支上
      • 執(zhí)行命令git cherry-pick 0096b95 7bfbaaa 326d7d8

       

      那么問題來了, 如果某個功能點提交了很多次且log信息不規(guī)范, 那我們找commit-hash的時候就得費一番功夫了, 可不可以將后來的改動追加到以前的某個commit上呢? 或者直接更改改以前的某次提交?

       

      答案是: 可以! (git中將當前改動追加到上一次提交上可以使用命令git commit --amend實現(xiàn), 下面介紹的兩種解決方案都使用了這樣命令)

       


       

      <一> 下面是直接更改某次提交的操作步驟:

       

      1. 將HEAD移到需要更改的commit上:
        git rebase f744c32cf74454a74bb2f80e5e38b120cb475af1^ --interactive
        找到需要更改的commit, 將行首的pick改成edit, 按esc, 輸入:wq退出
      2. 更改文件
      3. 使用git add 改動的文件添加改動文件到暫存
      4. 使用git commit --amend追加改動到第一步中指定的commit上
      5. 使用git rebase --continue移動HEAD到最新的commit處
        這里會有沖突, 需要解決:

        • 編輯沖突文件, 解決沖突
        • git add .
        • git commit --amend

        解決沖突之后再執(zhí)行git rebase --continue

       


       

      上述方法, 是改動某個指定的commit, 如果我要將工作空間中已經(jīng)改動的東西追加到某個commit上, 那么改如何做呢?

       

      <二>將工作空間中的改動追加到某次提交上的步驟如下:

       

      1. 保存工作空間中的改動git stash
      2. 后面的步驟就和上面的解決方案的步驟差不多, 只是第2步的更改文件改成執(zhí)行命令git stash pop, 其他步驟都一樣

       

      這樣處理之后, 如果branchB分支需要branchA分支上的某個功能, 只需要找到這個功能的惟一的一個提交記錄即可, 就不需要在很多commit之中尋找這個功能點的相關提交記錄. 更改合并之后再移動功能點, 就簡單了許多, 執(zhí)行找到功能點的惟一一個提交記錄, 讓后使用git cherry-pick commit-hash即可, 操作示意圖如下:

       


      功能點的提交合并到一個commit之后, 移動功能點的操作示意圖

       


       

      總結: 上述更改摸個提交記錄/將現(xiàn)有改動追加到某個commit之上的方案在實際開發(fā)環(huán)境中的需求并不多, 而且實現(xiàn)起來有相當?shù)木窒扌? 原因如下:

       

        • 如果版本規(guī)劃比較清晰, 就不會出現(xiàn)某個功能在不同版本之間穿梭的情形, 出現(xiàn)這種情況的大部分原因是: 多個版本的開發(fā)并發(fā)進行 (產品你TMD當我們是電腦么, 有多個cpu同時運行啊?! 不好意思, 忍不住爆粗口了-_-!)
        • 實際開發(fā)中一次提交中的改動不可能只改動一個功能點 (如果模塊或者功能點的邊界劃分的十分清晰, 是可以做到每次只改動一個功能點的)

       

        

       

      posted on 2017-02-20 10:45  everest33  閱讀(12115)  評論(1)    收藏  舉報

      主站蜘蛛池模板: 亚洲国产精品乱码一区二区| 欧洲亚洲精品免费二区| 亚洲中文字幕一区二区| 亚洲二区中文字幕在线| 国产精品无码素人福利不卡| 亚洲精品日韩精品久久| 国产成人亚洲日韩欧美| 激情在线一区二区三区视频| 精品国产亚洲一区二区三区| 午夜精品视频在线看| 国产成人高清亚洲综合| 亚洲中文字幕乱码一区| 国产嫩草精品网亚洲av| 婷婷久久香蕉五月综合加勒比 | 99久久伊人精品综合观看| 内射一区二区三区四区| 天堂中文8资源在线8| 久久精品女人天堂av| 成人免费视频一区二区三区| 国产精品一区二区传媒蜜臀| 性欧美乱熟妇xxxx白浆| 亚洲精品天堂在线观看| 亚洲综合久久精品国产高清| 久久精品国产亚洲av热一区| 日本一区不卡高清更新二区 | 久久久精品94久久精品| 久久国产综合色免费观看| 亚洲一区二区三区av激情 | 久久er热在这里只有精品66| 蜜臀一区二区三区精品免费| 在线视频中文字幕二区| 精品国产成人一区二区| 久久婷婷成人综合色| 白丝乳交内射一二三区| 国产日韩一区二区三区在线观看| 日韩有码中文字幕av| 116美女极品a级毛片| 一本无码av中文出轨人妻| 人妻中文字幕一区二区三 | 广南县| 98久久人妻少妇激情啪啪|