2013-03-05 89 views
7

交互式地添加部分笨蛋如果在選擇split後仍然顯示過大時仍然顯示爲hunk,那麼如何與git add --patch交互式地僅添加一些線/部分大塊?使用git add --patch

@@ -2,9 +2,17 @@ Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed 
diam nonumy eirmod tempor invidunt ut labore et dolore magna 
aliquyam erat, sed diam voluptua. At vero eos et accusam et 
justo duo dolores et ea rebum. Stet clita kasd gubergren, no 
+Ut wisi enim ad minim veniam, quis nostrud exerci tation 
+ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo 
+consequat. Duis autem vel eum iriure dolor in hendrerit in 
+vulputate velit esse molestie consequat, vel illum dolore eu 
+feugiat nulla facilisis at vero eros et accumsan et iusto 
+odio dignissim qui blandit praesent luptatum zzril delenit 
+augue duis dolore te feugait nulla facilisi. 
sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem 
ipsum dolor sit amet, consetetur sadipscing elitr, sed diam 
nonumy eirmod tempor invidunt ut labore et dolore magna 
aliquyam erat, sed diam voluptua. At vero eos et accusam et 
justo duo dolores et ea rebum. Stet clita kasd gubergren, no 
sea takimata sanctus est Lorem ipsum dolor sit amet. 

更新

由於SO用戶avivir正確地指出 「拆分」,可能是一個有效的選擇。

回答

14

如果你想添加只有一個大塊的一部分,您可以從被顯示的菜單中選擇編輯:

Stage this hunk [y,n,q,a,d,/,e,?]? 

這將啓動您的編輯器,您可以刪除那是大塊頭不需要的行即將被添加到索引中。改變是虛擬的,那就是你的文件不會改變。

+0

還應該有一個「分裂這個大塊頭」選項,這使得更容易(大塊可以分成單行) – 2013-03-05 16:40:03

+1

這是一個有用的參考:[每個y,n,q,a,d,/,K,j,J,g ,E,?代表在git -p的環境中](http://stackoverflow.com/questions/10605405/what-does-each-of-the-ynqadkjjge-stand-for-in-context-of-git-p) – AJP 2017-03-30 10:25:24

5

使用git add --patch的's'(拆分)選項。

這將導致git將其拆分成更小的區塊。 然後你會收到一個菜單爲每個新的大塊(這是原來的一部分),在那裏你可以選擇舞臺,甚至進一步分割,等等。

+0

I忘了說「如果分裂的塊還是太大」。我會更新這個問題,但你的答案仍然是正確和有用的。 – 2013-03-05 20:02:51