如何撤消提交,放入新分支然后做PR?

Dav*_*lsh 4 git

我有一个master只有PR推送保护的分支机构.

我不假思索地说master:

git add .
git commit -m "bunch of changes"
Run Code Online (Sandbox Code Playgroud)

但我推到分支机构并被拒绝,因为分支机构受到保护.如何回溯,保留我的更改并进行公关?

Saj*_*han 5

  1. 撤消最后一次master分支提交.

    $ git reset --soft HEAD~1      # undo the last commit and keep the changes in working tree   
    
    Run Code Online (Sandbox Code Playgroud)
  2. 签出到新分支(比方说feature),然后添加,提交和推送到远程feature分支.

    $ git checkout -b feature      # create and checkout to new 'feature' branch
    $ git add -A                   # add the changes 
    $ git commit -m 'message'      # commit 
    $ git push origin HEAD         # push to remote 'feature' branch
    
    Run Code Online (Sandbox Code Playgroud)

现在,从feature分支创建PR .


备用:

  1. 结帐到新分支(例如feature)并将feature分支推送到远程.

    $ git checkout -b feature
    $ git push origin HEAD
    
    Run Code Online (Sandbox Code Playgroud)
  2. 切换到master分支并撤消上次提交.

    $ git checkout master
    $ git reset --hard HEAD~1
    
    Or, (reset the local 'master' with 'origin/master')
    $ git checkout master 
    $ git fetch origin
    $ git reset --hard origin/master
    
    Run Code Online (Sandbox Code Playgroud)

现在,从feature分支创建PR .