我剛開始玩弄git(來自SVN),我確信我沒有以正確的方式思考 - 我從github克隆了一個倉庫,並從中刪除了標籤並添加了我自己的倉庫。但是當我做一個git狀態或git diff時,它表示沒有任何提交。它不應該與我從克隆的github項目進行比較嗎?我正在想這是我所知道的錯誤方式,但也許有人可以幫我把這個包裹起來。添加/刪除標籤不會顯示在git status或git diff?
回答
你是看着這個錯誤的方式。
你需要做的是忘記你對svn的瞭解。在svn中,你有一個倉庫,它位於服務器上。您更改文件並提交它們的增量。
然而,在你的計算機上有一個倉庫。如果你願意,你也可以在github上找到一個。其他人在您的項目上工作也將擁有自己的存儲庫。請注意我說的知識庫。是!庫!這意味着你的計算機中擁有所有的歷史記錄。你可以在你自己的計算機上提交,創建標籤,分支,合併,所有內容,而不用在github中觸摸任何東西。
歡迎使用分佈式版本控制系統。
與svn的另一個區別是,你沒有看到提交作爲增量,但你看到每個提交作爲你項目的整個文件集。因此,例如svn的奇怪合併(你說合並這個修訂版本和我的文件修訂版本之間的區別)在git中不存在。您只需合併該項目的快照即可。
然後提交意味着將更改提交到您的文件到您自己的存儲庫。創建標籤是另一個過程。一個不會改變你的文件的過程(與創建標籤意味着複製文件的svn不同)。 git中的標籤只是指向特定提交的指針!
所以,你想要做的是兩種不同的東西:
提交:提交資料庫修改。該命令是
git commit
您可以將文件添加到與
git add some_file
提交和提交更改的只是一部分,你的源代碼(這東西你不使用svn獲得)。或者,如果您要提交所有更改的文件,請添加-a
選項。推送:推送發送到另一個存儲庫,讓我們說一個遠程存儲庫,名爲origin(指向github),所有你在自己的倉庫中。這包括所有提交,並且如果您指定
-tags
也是您創建的標籤。例如:git push origin master -tags
或者,當你想更新你的資料庫,從起源,你首先:
取:更新你的資料庫到遠程之一。著名的:
git fetch origin
由此帶來的所有新提交和存在於
origin
標籤,但不是你的本地倉庫。合併:然後更新您的主分支遠程年代:
git merge remotes/origin/master
所以回到你的情況下,沒有沒有什麼承諾,但也有您需要按標籤。最後要告訴你的是,當你刪除標籤時,你只能從自己的存儲庫中刪除它們。爲了從遠程刪除:
git push origin :refs/tags/tag_name
理解這種語法需要更多一點的混帳推高級教程,但現在接受這一點。請注意,刪除標籤強烈不滿。這是因爲如果有人下載該標籤並開始使用該標籤並依賴該標籤,那麼如果她需要該標籤,她以後就無法再找到該標籤。因此,在創建標籤時,確保軟件/庫符合您的要求。
標籤指向其他對象它git(通常提交)。如果刪除標籤(通常不應該添加)或添加它們,則不會添加屬於提交的任何內容,因此不需要提交任何內容。您可能需要閱讀the git object model。
- 1. git diff-tree顯示刪除但沒有刪除git日誌
- 2. `git stash --patch`顯示的行改變了`git diff` /`git status`沒有顯示
- 3. git status顯示修改,git checkout - <file>不會刪除它們
- 4. git status和git diff空失敗後git我
- 5. 同時顯示git diff和git狀態
- 6. 爲什麼被拒絕的git push不會顯示在'git status'中?
- 7. 刪除git subtree添加git subrepo
- 8. Git Diff顯示未刪除的文件(帶「 - 」)
- 9. git status與git diff在內部的工作方式有何不同,以顯示未跟蹤的文件?
- 10. git status顯示修改後的文件,但git diff沒有顯示任何內容
- 11. git:爲什麼git diff不顯示任何差異?
- 12. `git的status`顯示worktree文件夾
- 13. Git顯示標籤提交是在
- 14. 文件移動與git mv顯示爲刪除/添加
- 15. 在Git中添加回溯標籤?
- 16. 如何退出git log或git diff?
- 17. git-gui不同意git status:爲什麼?
- 18. 解析git-status
- 19. git-diff:只顯示提交的變化
- 20. 我可以讓git add -p顯示像git diff --word-diff一樣的變化嗎?
- 21. 有沒有添加git顯示行,更改行和刪除行的方法?
- 22. git-mv顯示文件已刪除
- 23. git diff如何實際標識刪除的行
- 24. Git Diff - 指示行移動
- 25. UIScrollView - 添加/刪除標籤
- 26. 'git ls-remote'的輸出顯示在'git tag -l'中找不到的標籤
- 27. 刪除SVN標籤/從git倉庫分支,刪除SVN遠程
- 28. git不顯示代碼被刪除的地方
- 29. git的MV不會刪除舊文件
- 30. Git子模塊不會刪除