2016-10-03 44 views
2

我想要做的是,Git:是否可以使用數字在舞臺上添加(或差異)文件?

(spacegraphy) [email protected] spacegraphy-project $ (feature/carts)git status 
On branch feature/carts 
Changes not staged for commit: 
    (use "git add <file>..." to update what will be committed) 
    (use "git checkout -- <file>..." to discard changes in working directory) 

     modified: spacegraphy/carts/tests/test_views.py 
     modified: spacegraphy/carts/views/cart.py 
     modified: spacegraphy/functional_tests/test_cartitem_at_product_detail.py 
     modified: spacegraphy/products/static/js/product_detail.js 

no changes added to commit (use "git add" and/or "git commit -a") 

當我想看到的spacegraphy/carts/views/cart.py區別,我要像這樣輸入:
>> git diff 2
2因爲spacegraphy/carts/views/cart.py是第二次在不分級的文件列表)

同樣的,當我想補充spacegraphy/products/static/js/product_detail.js,我要像這樣輸入:
>> git add 4

會有可能嗎?請任何想法嗎?

+0

是的,這是可能的,但你將不得不編寫自己的shell腳本來解析'git status'的輸出,並找到你想添加的文件的位置,然後在該文件上執行'git add'。你可以嘗試使用'git status',''xargs'和'git'。 – Samundra

回答

2

是的,實際上是。看看git的interactive staging你會得到一個基於數字的菜單。

$ git add -i 
      staged  unstaged path 
    1: unchanged  +0/-1 TODO 
    2: unchanged  +1/-1 index.html 
    3: unchanged  +5/-1 lib/simplegit.rb 

*** Commands *** 
    1: status  2: update  3: revert  4: add untracked 
    5: patch  6: diff  7: quit  8: help 
What now> 

這樣區分文件。你會先寫6輸入差異。然後會出現一個文件列表,其中每個文件都有一個數字。輸入您想要比較的文件的編號,例如1。這將輸出差異,你會回到第一個菜單。

+0

哇這是華麗! – user3595632

+0

我發現一些奇怪的東西......我必須首先添加所有'unstaged文件'以顯示'diff' ...爲什麼會這樣? 'diff'顯示'unstaged文件'和上次提交之間的區別嗎.... – user3595632

相關問題