我们有一个主分支,一个主服务器的临时分支,以及我的功能分支。这是一个图表:
my_feature: o--o--o---o--o <= after rebase, contains commits
/ / from other_feature
other_feature: o--o /
/ \ /
staging: o--o---o--o
/
master: o--o--o--o-o--o--o--o--o <= master
我在my_feature
与other_feature
合并之后重新定位了staging
分支,目的是合并到staging
但后来意识到my_feature
应该直接合并到master
other_feature
。
现在的问题是,我master
的提交目前在git revert --no-commit 65b2e1b
没有业务。
当我尝试fatal: Your index file is unmerged
时,它会返回未合并文件列表和git status
。我不知道这是什么意思。
git commit -am "revert"
返回上述未合并的文件。所以我运行了You are currently reverting commit 5a53cd0. nothing to commit, working directory clean
,它返回了一条消息git push
。如果我然后尝试everything is up to date
,则只需说source = os.listdir("../myprogdir") # directory where original configs are located
destination = '//' + servername + r'/c$/remotedir/' # destination server directory
for files in source:
if files.endswith("myconfig.exe.config"):
try:
os.makedirs(destination, exist_ok=True)
shutil.copy(files,destination)
except:
pass
有什么建议吗?
答案 0 :(得分:0)
您可以使用新的rebase撤消原始rebase:
git checkout my_feature
git rebase --onto original_master staging
...其中original_master
是您的ASCII图片中最左侧/向下的提交,即您最初分支my_feature
的提交(我认为这是您所做的,尽管您的图片显示对左侧o
'进行严格解释的其他内容。
这将从original_master
开始,然后将staging
的每个补丁应用到my_feature
,换句话说,它会“移除”{{1}之间的任何内容来自original_master
的{}和staging
。当然,形象地说,我很确定你知道my_feature
没有更改任何东西而只是在其他地方添加新的提交......
如果这有意义,那很好 - 如果没有,请随意在评论中提问,以便澄清。