在當地工作

只需使用你的本地 git 儲存庫作為普通的 git repo,使用正常的 git 命令:

  • git add FILEgit checkout -- FILE 暫存/取消暫存檔案
  • git commit 儲存更改。這些提交將是本地的,不會被推送到 SVN repo,就像在普通的 git 儲存庫中一樣
  • git stashgit stash pop 允許使用藏匿處
  • git reset HEAD --hard 恢復所有本地更改
  • git log 訪問儲存庫中的所有歷史記錄
  • git rebase -i 所以你可以自由地重寫你的本地歷史
  • git branchgit checkout 建立本地分支機構

正如 git-svn 文件所述“Subversion 是一個遠不如 Git 複雜的系統”,所以你不能在不破壞 Subversion 伺服器歷史的情況下使用 git 的全部功能。幸運的是,規則非常簡單: 保持歷史線性

這意味著你幾乎可以進行任何 git 操作:建立分支,刪除/重新排序/壓縮提交,移動歷史記錄,刪除提交等。除了合併之外的任何東西。如果你需要重新整合當地分支機構的歷史,請改用 git rebase

執行合併時,將建立合併提交。關於合併提交的特殊之處在於它們有兩個父級,這使得歷史非線性。在你將合併提交推送到儲存庫的情況下,非線性歷史記錄會混淆 SVN。

但是不要擔心: 如果你將一個 git merge 提交推送到 SVN,你就不會破壞任何東西。如果這樣做,當 git merge commit 被髮送到 svn 伺服器時,它將包含該合併的所有提交的所有更改,因此你將丟失這些提交的歷史記錄,但不會丟失程式碼中的更改。