在當地工作
只需使用你的本地 git 儲存庫作為普通的 git repo,使用正常的 git 命令:
git add FILE
和git checkout -- FILE
暫存/取消暫存檔案git commit
儲存更改。這些提交將是本地的,不會被推送到 SVN repo,就像在普通的 git 儲存庫中一樣git stash
和git stash pop
允許使用藏匿處git reset HEAD --hard
恢復所有本地更改git log
訪問儲存庫中的所有歷史記錄git rebase -i
所以你可以自由地重寫你的本地歷史git branch
和git checkout
建立本地分支機構
正如 git-svn 文件所述“Subversion 是一個遠不如 Git 複雜的系統”,所以你不能在不破壞 Subversion 伺服器歷史的情況下使用 git 的全部功能。幸運的是,規則非常簡單: 保持歷史線性
這意味著你幾乎可以進行任何 git 操作:建立分支,刪除/重新排序/壓縮提交,移動歷史記錄,刪除提交等。除了合併之外的任何東西。如果你需要重新整合當地分支機構的歷史,請改用 git rebase
。
執行合併時,將建立合併提交。關於合併提交的特殊之處在於它們有兩個父級,這使得歷史非線性。在你將合併提交推送到儲存庫的情況下,非線性歷史記錄會混淆 SVN。
但是不要擔心: 如果你將一個 git merge 提交推送到 SVN,你就不會破壞任何東西。如果這樣做,當 git merge commit 被髮送到 svn 伺服器時,它將包含該合併的所有提交的所有更改,因此你將丟失這些提交的歷史記錄,但不會丟失程式碼中的更改。