代码之家  ›  专栏  ›  技术社区  ›  willcodejavaforfood

使用当前更改创建Git分支

  •  696
  • willcodejavaforfood  · 技术社区  · 15 年前

    主人

    我怎样才能创建一个新的分支,并在不弄脏的情况下带走所有这些更改 主人 ?

    5 回复  |  直到 7 年前
        1
  •  684
  •   VonC    6 年前

    如果您还没有做出任何承诺,那么仅(1:branch)和(3:checkout)就足够了。
    git checkout -b newBranch

    如中所述 git reset man page

    $ git branch topic/wip     # (1)
    $ git reset --hard HEAD~3  # (2)  NOTE: use $git reset --soft HEAD~3 (explanation below)
    $ git checkout topic/wip   # (3)
    
    1. master “分支。你想继续在主题分支中打磨它们,所以创建“ topic/wip “支流断流 HEAD .
    2. 倒带 主人 把这三件事处理掉。
    3. 切换到“ “继续工作。

    注:由于 git reset --hard 命令(它会重置索引和工作树。对工作树中的跟踪文件所做的任何更改 <commit> 我宁愿选择:

    $ git reset --soft HEAD~3  # (2)
    


    这个 --soft 选项根本不会触及索引文件或工作树(而是将头重置为 <提交>


    Git 2.23+ ,和 new command git switch reset --hard ,因此请注意其效果):

    git switch -f -c topic/wip HEAD~3
    
        2
  •  268
  •   Nick Kennedy    8 年前

    Git: Create a branch from unstagged/uncommited changes on master :不需要保存。

    只需使用:

    git checkout -b topic/newbranch

    任何未承诺的工作都将被带到新的分公司。

    如果你试着推,你会得到以下信息

    致命:当前分支功能/NEWBRANCH没有上游分支。到 推动当前分支并将远程设置为上游,使用

    git push --set-upstream origin feature/feature/NEWBRANCH
    

    按照建议远程创建分支:

    git push --set-upstream origin feature/feature/NEWBRANCH

        3
  •  73
  •   AvadhP    15 年前

    1. 创建新分支:

      git branch newfeature
      
    2. 签出新分支:(这不会重置您的工作。)

      git checkout newfeature
      
    3. git commit -s
      

    使用以上步骤将保持原始分支的干净,并且您不必执行任何“git reset--hard”。

        4
  •  29
  •   Six Uli Schlachter    10 年前

    git stash  # save local modifications to new stash
    git checkout -b topic/newbranch
    git stash pop  # apply stash and remove it from the stash list
    
        5
  •  13
  •   Patrick Schaefer    9 年前

    要将新更改添加到新分支并推送到远程:

    git branch branch/name
    git checkout branch/name
    git push origin branch/name
    

    通常,我会忘记添加要推送的源代码部分,并弄不明白为什么在bitbucket中看不到新的分支/提交