2010-06-01 97 views
2

如何在補丁模式下直接啓動「git add -i」而無需鍵入「5」+ Enter?直接跳轉到'git add -i'補丁命令(5)

我知道「git add -p」,但它不一樣,因爲它沒有顯示我首先選擇的文件列表。

這非常令人討厭,因爲我想快速在「git add -i」和「git commit」之間跳轉,將我的骯髒的樹變成一些漂亮的提交。

回答

2

這是一個相當簡單的更改perl文件,使之發生。如果您不喜歡修補所有文件的默認git-add -p行爲,我只會建議您這樣做。

查找git-add--interactive的副本,並打開您喜愛的編輯器。轉到patch_update_cmd子例程。在那裏,有一個測試$patch_mode的if語句。除去if語句的頂部或設置它,以便條件總是計算爲false。保存並測試。

我做了這個工作的一個例子如下。

if (0) { 
    @them = @mods; 
} 
else { 
    @them = list_and_choose({ PROMPT => 'Patch update', 
      HEADER => $status_head, }, 
     @mods); 
} 

另一個可能的變化點將在文件的最底部。在if語句之後,您可以將$patch_mode更改爲一些錯誤值,效果應該相同。

請注意,如果您使用的是軟件包管理器或其他跟蹤已安裝軟件包的類似軟件,則可能會遇到一些問題,我不確定。

+0

謝謝,一旦我有更多的時間,我會試一試。如果我這樣做,我會與維護人員交談,看看它是否可以在上游合併。我對維護我自己的git fork不感興趣:) – 2010-08-06 08:18:47

1

你可以做什麼,是'git add -p'並添加文件名作爲命令行參數。 與良好的製表符完成(它只能完成髒文件),它就像從菜單中選擇它一樣有效。

+0

我有git的選項卡完成,但它似乎並沒有給我git'add -p'上的髒文件。 否則這可能是一個可行的選擇。我仍然喜歡使用git add -i界面,所以... – 2010-06-01 09:42:57

+0

沒有參數的git add -p已經自動假定你想添加拼接所有修改過的文件。沒有太多的獲得這種方式... – Cascabel 2010-06-02 00:55:55

0

如果你不介意提出一個GUI,只需使用git gui