我看到git checkout \*
和git commit -
參考online tutorial。這些成就是什麼? (這似乎不是很直觀,從該名男子頁。)什麼做「git checkout *」和「git commit - 」完成?
回答
如果你發出命令
git checkout *
則執行git checkout
之前,你的shell將擴大*
水珠。例如,如果你有文件A.TXT,b.txt,並c.txt,外殼會在運行它之前展開,以
git checkout a.txt b.txt c.txt
。相反,當您使用\*
時,*
會被轉義並直接傳遞給git checkout
。
從手冊頁:
git checkout [-p|--patch] [<tree-ish>] [--] <paths>
當<路徑>或--patch給出,GIT中結帳確實不開關 分支。它更新 中索引文件或命名爲< tree-ish >(通常是提交)的工作樹中的命名路徑。在這種情況下, -b和--track選項毫無意義,導致其中任何一個都會導致錯誤。在更新工作樹之前,參數 可用於指定特定的樹(即提交,標記或樹)以更新給定路徑的索引。
在這裏,他正在逃避glob \*
,以防止bash擴大它;所以它可以被git用來擴展索引中的內容。
EDIT(後問題更新):
約git commit -, 'canonical version'
: 它只是一個錯字(注意如何,只是旁邊米鍵)commit -m '...'
.....
實際上git commit --file -
會從標準輸入讀取它的輸入,當用於管道來自其他命令的數據時;但它不是你的例子中的意圖。
我現在明白,在傳遞給git之前,傳遞「\ *」可以防止bash從glob擴展。但我仍然不明白git在做什麼。你是什麼意思「所以它可以被git用來擴展索引中的內容」? – George
你有你的工作目錄包含文件; git索引包含一個文件列表(已添加到索引的文件)。如果你做'git checkout *''bash會將'*'與當前工作目錄匹配,展開命令並執行'git checkout file1 file2 file3 ...'。如果你使用'git checkout \ *',git將會收到glob,並將它與索引中的列表進行匹配,執行上面黃色框中描述的操作,所有匹配的文件(在本例中都是這些文件)。 –
- 1. 「git checkout」和「git checkout - 」有什麼區別?
- 2. 什麼是「git checkout - 」。做?
- 3. 「git commit -vam」完成了什麼?
- 4. git-stash和git-checkout有什麼區別?
- 5. git checkout commit-name和git checkout branchname有何區別
- 6. git revert和git checkout
- 7. 併發git checkout/add/commit
- 8. `git checkout-index -u`或`--index`做什麼?
- 9. git commit --cleanup = whitespace是做什麼的?
- 10. 當用戶在「git add」和「git commit」之前做「git push」會發生什麼?
- 11. git clone和checkout有什麼區別?
- 12. 如何在git add和git checkout沒有git commit後重新獲得diff?
- 13. `git checkout -b新功能主控程序是做什麼的?
- 14. git checkout vs git checkout HEAD vs git checkout <CURRENT BRANCH> vs git checkout - <WORKING DIR>
- 15. 什麼時候需要做「git pull」,在「git add,git commit」之前還是之後?
- 16. 爲什麼我必須使用「git commit -a」而不是「git commit」?
- 17. 結合git add。和git commit
- 18. 我該如何完成git commit?
- 19. git commit -m vs git commit -am
- 20. git - 我做了什麼?
- 21. git reset文件和git checkout文件有什麼區別?
- 22. 「git checkout -f」和「git reset --hard HEAD」有什麼區別?
- 23. 「git reset --hard」和「git checkout。」有什麼區別?
- 24. Git rebase to older commit
- 25. git commit -am和git之間有什麼區別-m
- 26. (git add -A後跟git commit)和git commit -a之間的區別?
- 27. git merge origin/master做什麼?
- 28. git commit problems
- 29. 忘記「git rebase --continue」並做了「git commit」。怎麼修?
- 30. 爲什麼git checkout「origin/branch-name」在git 1.5中導致「no branch」?
你最好首先考慮這個問題,然後發佈它,而不是一遍又一遍地重新編寫問題的主要部分。 – Zereges