2012-02-07 132 views
15

我幾天前開始使用SourceTree來管理Mercurial存儲庫和我的Mac。現在我遇到這個問題時,推到我的遠程存儲庫創建一個新的分支上的新頭,我想強制它。使用SourceTree強制推送

但是,我無法在SourceTree中找到任何特定的選項,它允許我爲推送設置強制選項。這只是我無法找到它或者沒有可能設置它嗎?

在此先感謝 邁克爾

+3

這不是你的答案(從來沒有用過sourcetree),但是從命令行來說,最好使用'hg push --new-branch'而不是'hg push --force'。 「--force」的原因可以覆蓋各種各樣的「你確定嗎?!」消息包括(a)現有分支的新主管,更重要的是(b)完全不相關的存儲庫。在另外兩種情況下,使用'--new-branch'仍會停止/警告你。 – 2012-02-07 21:10:01

回答

13

SourceTree終於要加力推: https://jira.atlassian.com/browse/SRCTREE-1156

原因: https://answers.atlassian.com/questions/54469/how-do-i-perform-a-forced-push-push-f-from-sourcetree

編輯: 它現在被添加在SourceTree,但你需要關閉該選項上的設置。

+1

請注意,這僅在1.6版本中可用,該版本自上週開始僅在beta版本中提供:http://blog.sourcetreeapp.com/2013/03/28/sourcetree-for-mac-1-6-beta/ – 2013-04-05 12:53:44

+0

你確定它是在第一個測試版嗎?我看不到選項,Jira中的問題仍然顯示「正在進行」。 – Zammbi 2013-04-07 22:42:14

+1

Jira狀態對我來說顯示爲已關閉,但在票證中描述的功能確實沒有在第一個測試版中實現(還沒有?)。希望在第二個?交互式底圖(Git)使得即使沒有強制推送(至少對我來說)也是值得下載的。 – 2013-04-09 06:19:27

2

SourceTree(如版本的1.4.2)發出hg push --new-branch根據需要,因此,如果您創建一個新的分支(而不是在其一個分支兩個頭),你只要(存儲庫)。如果您在多個分支上有外出變更,您可以選擇指定您想要推送的分支。

我無法通過SourceTree對話框找到正確執行hg push --force的方法。我同意@ Ry4an說這個選項比有用的更危險。自從--new-branch被引入後,我從來沒有進行過力量推動,並且從不需要它將不相關的資源庫或推動雙頭分支(強制拉動更安全)。

我的結論是,在罕見的情況下,當需要推力時,開放終端不會受到傷害。如果您不同意,請在評論中分享您的工作流程。

+0

我認爲'--new-branch'選項已經足夠了,因爲我們稍微改變了一下工作流程(就像你間接建議的那樣)。謝謝你的幫助! – 2012-05-22 07:02:17

+1

我不確定Mercurial,但是對於Git來說,rebase工作流程非常常見。我們的整個公司都使用SourceTree來處理所有事情,但是我們不是將我們當前的分支放在我們希望合併的分支之上,而是進行拉取/合併。 使用SourceTree進行重新編碼並不錯,但是當我們無法將更改推送到我們的遠程時無用!然後,我們必須在每次「合併」時拆開終端。爲什麼要禁用危險功能,而不是暴露出很多警告? – Tim 2012-08-07 01:00:13

+0

@Tim:我相信Git中的推力與Mercurial中的推力不同。如果您必須在Mercurial中進行重新綁定之後執行強制推送,則您不會喜歡結果(遠程回購中同一分支的兩個副本)。至於Git,我不能說。 – Helgi 2012-08-07 17:44:45