我有一个远程分支,其中的提交过多。我想从中删除37fba70e之后的所有提交。这是在bitbucket上的样子:
我在本地进行过
Which reduces to
maximize (- { W(sa).f(sa) + W(sb).f(sb) + W(ad).f(ad) + W(ac).f(ac) + W(bd).f(bd) + W(bc).f(bc) + W(dt).f(dt) + W(ct).f(ct) } )
,现在我的日志如下:
Maximize
-x1-x2-10(x3)-7(x4)-12(x5)-7(x6)-x7-x8 (objective function)
Given that (constraints)
Capacity constraints:
x{1-8} <= 1
Flow conversations:
x1 = x3+x4 --> ( x1-x3-x4 <=0 & -x1+x3+x4 <= 0)
x2 = x6+x5 --> ( x2-x6-x5 <=0 & -x2+x6+x5 <= 0)
x7 = x3+x5 --> ( x7-x3-x5 <=0 & -x7+x3+x5 <= 0)
x8 = x4+x6 --> ( x8-x4-x6 <=0 & -x8+x4+x6 <= 0)
Demand:
x1 + x2 =2 --> ( x1+x2 <=2 && -x1-x2 <=2)
这看起来是正确的,因此我想将这些更改推送到bitbucket,但是git branch -f origin/start-defblock-on-long-hyphen 37fba70e
并没有任何更改。输出很简单:
commit 37fba70ef7db1ce244d6e0c0d4e3b42d95dd7cb0 (HEAD -> origin/start-defblock-on-long-hyphen)
Author: First Last <first.last@company.com>
Date: Thu Apr 11 13:28:51 2019 +0200
added ')].' to valid end
commit 30fa3879845184405aba590b85380a6793ed5051
Author: First Last <first.last@company.com>
Date: Wed Apr 10 16:02:31 2019 +0200
accept to start def on moment start if start element is long dash
commit 57157406ab149b2934bfb2db7e6a6021bf950e02
Author: First Last <first.last@company.com>
Date: Wed Apr 10 15:42:06 2019 +0200
added long dash to valid start
和Bitbucket提交历史与以前相同。
我如何实现自己想要的?
答案 0 :(得分:2)
您跑了:
import os my_file = os.path.join('/home/stoplight25/Desktop/music/addSong',bashName) new_mode = os.stat(my_file).st_mode | 0o100 os.chmod(my_file,new_mode)
这是一个错误!这创建了一个名为git branch -f origin/start-defblock-on-long-hyphen 37fba70e
的 local 分支。这种情况(每个人)都很困惑,因为通常以origin/start-defblock-on-long-hyphen
开头的名称是为您自己的远程跟踪名称保留的。
您的origin/
输出现在以:
git log
这意味着您还运行了commit 37fba70ef7db1ce244d6e0c0d4e3b42d95dd7cb0 (HEAD -> origin/start-defblock-on-long-hyphen)
,现在它是您的当前分支。
要解决此问题,您可能应该先将本地分支重命名为一个更具本地外观的名称:
git checkout origin/start-defblock-on-long-hyphen
我希望这会失败,因为我相信您也还有一个名为git branch -m origin/start-defblock-on-long-hyphen start-defblock-on-long-hyphen
的 local 分支。如果是这样,您可以:
start-defblock-on-long-hyphen
本地名称。由您决定要采取哪种操作的确切选择-每个操作都稍有微妙的不同,但最终它们可能最终都具有相同的效果。 最安全是先重命名本地,然后以origin/
命名的本地重命名:
origin/
(请注意,如果您已经有一个名为git branch -m start-defblock-on-long-hyphen old-start-defblock-on-long-hyphen
git branch -m origin/start-defblock-on-long-hyphen start-defblock-on-long-hyphen
的本地分支,则会遇到另一个问题)。完成此操作后,您可以重复执行以下操作:
start-defblock-on-long-hyphen
应该立即失败,因为您必须使用git push origin start-defblock-on-long-hyphen
或同等命令在此操作的接收端命令Git(即Bitbucket上的Git)失去所有额外的提交,但是如果这就是目标,并且该Bitbucket Git的所有其他用户都同意可以丢失它们,继续使用--force
。您可能还希望在推送过程中使用--force
或-u
标志,即:
--set-upstream