2014-12-22 345 views
5

我想推送幾個單一的提交到我們的主要git倉庫。在做了一些閱讀之後,雖然聽起來像我必須重新排序提交才能這樣做,因爲git只會將所有提交都推送到指定的提交。首先,我不明白爲什麼這不僅僅是內置於git(我是git新手)。無論如何,我需要重新排序提交,並使用TortoiseGit。我已經找到了如何到達rebase菜單,但我不知道選擇哪個選項。要進入底墊菜單I:如何使用TortoiseGit重新排序提交(rebase)

  1. 右鍵點擊目錄並選擇TortoiseGit /顯示日誌
  2. 瀏覽到的和所選擇的承諾,我想重新排序。
  3. 選擇「Rebase」主「到這個」。

我被介紹了一個對話框,但我不知道任何字段的含義。

首先,有分支領域,我看到主人和一些遙控選項。我沒有任何分支機構。我克隆了一個存儲庫,到目前爲止一直在從本地克隆工作,爲什麼會有分支選項?

其次,有一個按鈕,左右箭頭在彼此的頂部。這個按鈕是什麼?

第三,有一個上游字段,默認情況下它有倉庫的SHA選擇。當我點擊該字段時,我看到了FETCH_HEAD,master和一些遙控器選項。

我希望看到提交列表,我可以將我的提交上下移動。通過檢查Force Rebase選項,我可以看到提交列表。這是我需要做的嗎?我在強迫什麼,我想我只是想做一個普通的老基金?

再次,我是一個git新手,任何幫助表示讚賞。

回答

1

這是一種解決方法。這裏是我的發現:Definition of "downstream" and "upstream"

FETCH_HEAD的定義:

上游和下游的定義搜索「什麼是FETCH_HEAD在混帳」在谷歌。

我可以使用git命令行工具與TortoiseGit ?: Can I use command-line Git tools and TortoiseGit simultaneously?

如何重新排序提交用git:http://blog.dennisrobinson.name/reorder-commits-with-git/

在這篇博客文章,他建議使用:

git rebase -i HEAD~3 

我用

git rebase -i <SHA_of_oldest_commit> 

改爲。這將爲您提供從頭到SHA_of_oldest_commit的提交列表。爲了重新排序提交,我只是重新排列了我想要的那些行並保存並關閉了文件。

7

您正處於正確的軌道上。強制重新使用是您需要使用的選項。在使用Force Rebase選項看到提交後,選擇提交併使用向上/向下按鈕重新排序提交。在您按需要對它們進行了排序之後,按開始基準按鈕。

至於你爲什麼需要選擇強制重組;通常在您希望將當前分支關閉爲新的提交時,通常會執行Rebase。由於您當前的分支已經基於您選擇的提交,因此沒有任何可以變更的地方。在你的情況下,你只是試圖重新排序你的提交而不是重新綁定。爲此使用rebase沒有任何錯誤。只需要明確選擇強制重設。

+0

我假設Force Rebase啓用了git rebase的強制標誌使用。爲什麼我需要用Tortoise強制變形,但不要用git命令行? – Samuel

相關問題