這感覺就像一個我應該能夠找到已經回答的問題,但我似乎找不到一個問題,我想我讀過的許多帖子實際上是想詢問我將要嘗試和解釋的內容。我正在使用 VSCode,如果重要的話,我有 Gitlense。
我是前 CVS 用戶。我更喜歡 git ……除了合并更改。我可能被 CVS gui 或其他東西寵壞了:
當我進行了與我的 CVS 存盤庫中的不同的本地更改時,我能夠像 git 一樣查看差異:左邊是存盤庫副本,右邊是我的作業副本。完全有道理。差異中的行標記不同(我已經能夠找到的問題)但我真正想念的是能夠點擊更改并將其移動到作業副本或忽略它。合并這些更改后,我可以檢入更改后的檔案。
在 git 中,我發現的是......首先,如果我有本地更改,我將無法拉取。我必須把它們藏起來,拉,然后彈出,然后差異。我可以查看我熟悉的差異。然后,如果我看到更改,則不允許在 diff 工具中修改我的作業副本。我必須從差異復制,轉到我的作業副本,粘貼更改,回傳差異并繼續滾動行。
是否有我遺漏的工具或步驟?我只想單擊一個按鈕并將更改移動到作業副本。我對 stash 然后 pop 沒問題,但每次都這樣做似乎有點傻。
剛才我不得不存盤超過 20 個檔案,拉出一大堆,我即將進行存盤彈出并讓自己花一天的時間來合并更改。有沒有更簡單的方法?
uj5u.com熱心網友回復:
首先,CVS 和 Git 都沒有單一的標準 GUI,因此對“單擊”的參考表明差異的一部分不在 CVS 和 Git 之間,而是在您使用的 GUI 工具之間。Git 有許多 GUI 以及與 IDE 的集成,它們的質量和復雜性各不相同。因此,對于那部分,真正的問題可能是“我如何找到更好的 Git GUI?” (答案是四處尋找您喜歡的外觀并嘗試一下。)
其次,git 更加強調提交和分支,而不是檔案和更改。git 中的分支很便宜,而且每天都創建新的分支很常見。
因此,您使用本地和遠程更改描述的程序通常在具有多個分支的 git 中進行管理,并在它們之間進行合并:
- 您創建一個分支“feature-123”,并隨時提交您的更改
- 您的同事創建了一個不同的分支“feature-456”。
- 您的同事首先完成,然后將“feature-456”合并到一個共享分支(例如“main”、“master”或“develop”)。
- 要獲取他們的更改,您首先提交到目前為止的內容,然后使用“git pull”將共享分支(“main”/“master”/“develop”)合并到您的作業分支(“feature-123”)中。
- 此時,您會看到兩個分支之間的沖突,解決它們并提交結果。
您可能偶爾會在步驟 4 中使用“stash”而不是“commit”,但這只是例外而不是規則。
您可能還喜歡使用“rebase”而不是“merge”,但結果是相似的。
關鍵是兩個人很少直接提交到同一個分支。每個開發人員都提交到他們自己的分支,并以某種方式共享它——通常在某些中央服務器(如 Github、GitLab、BitBucket 等)上使用“拉取請求”或“合并請求”。
uj5u.com熱心網友回復:
我標記了已回答的問題,因為@IMSoP(我如何在這里@mention?)給出了一個非常完整的答案(謝謝)。對于偶然發現此問題的任何人,除了已接受的答案之外,這就是我為獲得我習慣的 GUI 所做的作業。
我使用了外部差異程式。不理想,但我安裝了 Meld ( https://meldmerge.org/ ),然后是 Meld Diff 擴展。我必須轉到擴展設定并將完整路徑放入 Meld.exe(對我來說它是“C:\Program Files (x86)\Meld\Meld.exe”),然后我可以右鍵單擊一個檔案有沖突并選擇“使用 meld diff 打開”,然后 meld gui 就會按照我習慣的方式進行比較和合并。
現在我需要研究這個問題的完整答案。我沒有使用過分支……我患有 CVS 分支 PTSD。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/383263.html
上一篇:在VSCode中切換評論組?
