對不起,如果這個問題是無知的,我剛開始使用Git。昨天我創建了一個帶有主分支的本地存儲庫,然後創建了一個名爲'firstbranch'的新分支。我會在'firstbranch'中做一些實踐工作,然後添加/提交更改,然後將其合併到主分支中。這是主意。然而,今天我選擇了離開的地方,但現在我正在修改'第一分支',沒有合併甚至不承諾,它正在對主人進行修改。有什麼我做錯了,或者這是否應該發生?我顯然希望在不更新主服務器的情況下將更改設置爲'firstbranch',以防我決定取消工作。Git master分支正在自動更新
回答
在git中有三種不同類型的存儲:工作樹,索引和數據庫。瞭解這些如何相互作用是非常重要的。
通常,工作樹是您直接與文件交互的地方(即您可以在文件資源管理器或IDE中看到它們;您可以在文本編輯器中使用它們)。在工作樹的頂部通常有一個.git/
目錄,其中包含索引和數據庫等等。該指數是變化的階段(由git add
)。該數據庫包含您的項目歷史記錄(它是提交和參考的地方)。
特別是,分支(它是一種類型的ref)存在於數據庫中,而其他地方不存在。 (索引和工作樹可以「檢出到一個分支」,但這更像是工作樹的狀態,而不是關注分支本身的任何事情。)
我認爲你必須遵守的是你讓一些然後(沒有提交它們)檢查出另一個分支,並且更改仍然存在。這是因爲他們在工作樹上。他們還不屬於任何分支。通常檢查分支可能需要git將更改應用於工作樹,如果這些更改會影響具有本地更改的文件,那麼結帳將被拒絕;但是如果允許結賬,那麼工作樹的變化就會隨之而來。這是爲了您的方便,儘管它可能會造成混淆。
如果你想獲得你的局部工作正在進行「出路」,讓你可以檢查出另一個分支正是,因爲它是在數據庫中,你可以
(1)使用git stash
把本地更改到臨時提交,您可以從中取回這些數據(與git stash pop
),或
(2)使用git worktree
檢查另一分支出來到一個單獨的文件系統路徑
您也可以使用各種選擇ns與git show
和git diff
來檢查給定分支的頭部提交(等等)。我建議查看這些命令的git文檔。
這就是我一直在尋找的謝謝! –
- 1. git:如何用'dev'分支中的文件更新'master'分支?
- 2. 如何在Master TortoiseGit中將更新從Master傳送到分支
- 3. Git Master分支被毀壞分支
- 4. 在git中自動更改分支
- 5. Git分支開發和master有分歧
- 6. Git:更新來自兩個分支的主分支
- 7. 使用dev分支而不是master(Git)
- 8. 倉庫中的git clean master分支
- 9. 阻止git合併到master分支
- 10. 在取消rebase正在進行之後,我無法從master分支更新我的分支?
- 11. 無法用dev分支覆蓋Git master分支
- 12. 只允許來自主分支的'git push heroku master'
- 13. Git重新綁定到master的分支失敗,如何解決?
- 14. 重新將git-svn master分支返回到trunk
- 15. ,如何更改git分支正在跟蹤的svn分支?
- 16. 在Git中更改分支
- 17. 重新分配自分支後重寫的git分支
- 18. 從基地分支更新git
- 19. 更新分支使用Git拉
- 20. git:合併後更新2分支
- 21. Git:更新遠程分支信息
- 22. git自動更新svn
- 23. Git自動跟蹤分支克隆
- 24. Git的本地分支自動合併
- 25. git集成分支自動化合並?
- 26. 混淆git合併,如何合併master到分支但保持分支分開
- 27. Git:新分支沒有被推動
- 28. 不允許在Git中刪除Master分支
- 29. 在git中跟蹤遠程/ p4/master分支
- 30. 不在Git的master分支上工作的原因
我想你結帳出主,忘了回去第一枝。 – eftshift0
你如何知道'master'分支上的變化?特別是因爲你沒有做任何事情? – axiac
你確定你是在正確的分支?執行'git log --graph --oneline --decorate --all'並告訴我們HEAD指向的位置。 – Makoto