雖然使用git的好處多多,不過由於一些歷史原因我們在工作時可能還得使用svn,那麼有沒有一種方法可以兼顧理想與現實呢?
git給我們提供了git svn命令工具,可以用使用git的方法來管理svn**。閒話不多說,正式開始我們的git svn使用教程。
只拉取單一目錄:
git svn clone
拉取伺服器上全部資料:
git svn clone -t your_trunk -b your_branches -t your_tags
如果svn伺服器上的目錄結構為標準目錄即trunk、tags、branches,可直接用
git svn clone -s
git status 檢視倉庫狀態
git log 檢視提交記錄
git reflog 檢視git操作記錄
git add -a 新增需要提交的檔案
git commit -m "我是注釋" 提交已add的檔案到倉庫
git reset --hard head 恢復所有修改的檔案到最新版本
當然我們常常還需要處理**衝突,git命令或mac上的工具還是弱了些,這時就肯定要用到神器beyond compare,推薦使用beyond compare 4,實測beyond compare 3在處理git svn庫**有時不能正確合併。記得配置beyond compare為預設difftool/mergetool,配置說明參見:
git svn rebase
本地開發完後git commit到本地git庫,之後可用如下命令提交檔案到svn:
git svn dcommit
由於網路等原因,一些計算機可能無法管理svn庫中**,給我們的開發造成很大的不便。這時可以利用git庫可進行離線版本管理的特點在本地建立git svn版本庫,以此版本庫做中轉來解決版本管理問題。下面為一示例:
建立本地git倉庫,d盤下建立目錄名為deploy 的git倉庫:
cd d:/
git svn clone svn: deploy
建立開發倉庫:
git clone d:/deploy dev_master
因為用git svn轉殖的倉庫不能使用bare設定為沒有工作區的映象庫,所以在dev_masterpush時可能會有receive.denycurrentbranch』 configuration variable to refuse這樣的提示,這是因為git預設不允許push到non-bare的庫,可在deploy 目錄下使用如下配置:
git config receive.denycurrentbranch updateinstead
一些提交的注釋可能需要固定的格式,在vi中鍵入i進入輸入模式可較完整的貼上注釋內容,或搜尋使用git commit 模板
用法。
最簡單的是在master分支上開發。如果出現提交記錄不能顯示可能有以下幾個原因:
所提交記錄在分支
如在dev分支上開發,用此保留提交記錄
git rebase master
git checkout master
git merge dev
svn提交記錄時區與git不同
檢視svn提交記錄生成的時間的格式,提交時使用
git commit --date "custom date string"
如果已經提交,用amend命令:
git commit --amend --date "mon may 30 12:00:30 2016 +0800" -c c3926b
//date中按正確的日期格式書寫,c引數為commit-id,不是svn-id
用此方法提交在git庫中時間為"custom date string",但是由svn客戶端檢視為真實提交到svn伺服器端的時間。 VNC簡明使用教程
vnc是一款區域網遠端工具。安裝包 密碼 3zum 啟用碼 fbv9v 7z3v9 med3u 47seu 85t3a 安裝過程很簡單,一直點下一步就行。啟用有兩種方式,第一種是郵箱啟用,第二種是啟用碼啟用。我們選擇第二種啟用方式,直接將上面的啟用碼貼上進去就行了。控制電腦a 和 被控制電腦b 處於...
GDB使用簡明教程
一 在編譯的時候為什麼要加 g 如果沒有 g就看不見函式名,變數名,所代替的全是執行時的記憶體位址。二 如何檢視和使用core檔案 首先通過指令ulimit a檢視系統是否允許生成core檔案,可以通過指令ulimit c unlimited取消系統對core檔案的限制,ulimit c 1024指...
git的簡明使用教程
git的安裝 git的安裝在window下圖形介面的操作非常簡單,在linux下以烏班圖為例 sudo apt get install gitgit的配置 git config global user.name xx git config global user.email xx第乙個要配置的是你個...