Mel*_*emi 29 git master git-branch
基本问题,但这一直发生在我身上:
working-branch
master
git merge working-branch
git push
cap deploy
(到分期) 然后我回过头来想想别的东西,然后开始做一些改变......同时还要掌握.
什么是简单的方法:
working-branch
并清除,master
以便我可以继续编辑working-branch
new-working-branch
然后丢弃working-branch
?在本页 "分支"部分的后半部分冒了一个风险并尝试了推荐,但这只是消除了我的所有编辑!?!也许是因为后git branch dubious-experiment
和git checkout master
在git status
上两个分支是相同的(主上不"干净").所以git reset --hard <SHA1sum>
两者的所有变化都消失了!?!
git branch dubious-experiment
M---N-----O----P---Q ("master" and "dubious-experiment")
git checkout master
# Be careful with this next command: make sure "git status" is
# clean, you're definitely on "master" and the
# "dubious-experiment" branch has the commits you were working
# on first...
git reset --hard <SHA1sum of commit N>
Run Code Online (Sandbox Code Playgroud)
Chr*_*ial 31
根据您的描述,我假设您尚未提交任何更改 - 这是正确的吗?
如果是的话,这是你的答案:
您需要在编辑器中设置它,但这可能很难.在提示符和编辑器中显示当前分支有很大帮助.
new-working-branch
然后丢弃working-branch
git checkout -b new-working-branch
git add …
git commit -m "mycommit"
Run Code Online (Sandbox Code Playgroud)
由于你还没有提交任何东西,你不需要在master上做任何改变.如果您愿意,现在可以丢弃您的工作分支.
working-branch
git checkout -b temp-branch
git add …
git commit -m "mycommit"
git rebase --onto working-branch master
git checkout working-branch
git reset --hard temp-branch
git branch -d temp-branch
Run Code Online (Sandbox Code Playgroud)
如果您的更改不与master上的任何更改冲突,但不会与工作分支中的更改冲突,则可以更简单地完成此操作:
git stash
git checkout working-branch
git stash pop
Run Code Online (Sandbox Code Playgroud)
如果你已经提交了你的更改master
但没有推到任何地方......
为最后的更改创建一个新分支
git checkout -b newfeat master
Run Code Online (Sandbox Code Playgroud)
重播所有更改(移动提交)在您的working-branch
分支上
git rebase --onto working-branch origin/master newfeat
Run Code Online (Sandbox Code Playgroud)
更改为master
分支并将其重置为上次推送的状态
git checkout master
git reset --hard origin/master
Run Code Online (Sandbox Code Playgroud)
此时你有:
master
指向上次推送的提交(origin/master
)working-branch
从未改变过newfeat
包含所有新提交的新分支,并且领先于working-branch
. 归档时间: |
|
查看次数: |
17175 次 |
最近记录: |