簡體   English   中英

git-svn的git-svn標記在哪里?

[英]where is git-svn's git-svn TAG?

我正在使用git-svn以便與git一起練習。 我的意思是我絕不是git專家。 一開始我發現git令人生畏,但我對git的設計和功能着迷。 我有一個我無法回答在互聯網上搜索的問題,也許是因為很難搜索。

在使用git進行功能分支開發幾天后(使用git-svn克隆后),我想在git svn dcommit之前重新構建提交 我不想在svn集成分支中充斥數十個毫無意義的小提交。 為此,我知道我可以使用git rebase -i

該命令需要指定一個提交。 我已經讀過我可以使用名為git-svn的(標簽?)。 確實,存在這樣的提交/標記,我可以git log git-svn ..git rebase -i git-svn

到目前為止,一切正常。 現在,在介紹完之后,我的問題是:

這個git-svn參考是什么? 標簽? 提交? 命令git tag --list不顯示任何內容,而git-svn作為標記在我以前工作過的其他git克隆上不存在。

另一個問題:在我git svn dcommit之后 ,該引用會被更改嗎? 可以手動更改嗎?

謝謝。

在這種情況下, git-svn不是標簽。 這是git svn clone創建的(一種特殊的) 遠程跟蹤分支

背景:

當您使用git svn clone克隆SVN存儲庫時,默認情況下,整個存儲庫將被克隆為一個遠程跟蹤git分支(要將SVN分支轉換為git分支,必須使用選項-T-b-s ;請參見聯機幫助頁的“ SVN分支處理”部分。 在這種情況下, git svn將創建該遠程跟蹤分支為“ refs / remotes / git-svn”

現在git允許您縮寫對分支的引用; 因此,您可以編寫git log master來代替編寫git log refs/heads/master git log master 類似地,“ refs / remotes / git-svn”可以縮寫為“ git-svn”。 手冊頁gitrevisions進行了解釋。

因此,回答您的問題:

這個git-svn參考是什么? 標簽? 提交?

這是一個遠程跟蹤分支。 git branch -a

另一個問題:git svn dcommit之后,該引用會被更改嗎?

是。 分支“ git-svn”跟蹤您克隆的SVN存儲庫,因此每當您從SVN中獲取新修訂時,它將被更改; 這包括調用git svn dcommitgit svn fetch

可以手動更改嗎?

是的,它可以像其他任何git分支一樣。 但是,總的來說,這是沒有意義的。 它只會混淆git svn並弄亂您的存儲庫。 在某些情況下有必要(例如重新獲取服務器上更改的SVN修訂版),但這是一個不同的問題...

我在項目中廣泛使用git-svn,但是找不到名為git-svn的引用。 您正在使用哪個git版本?

根據我自己的經驗,git-svn創建一個名為trunk的引用,該引用指向從svn服務器檢索到的最后一個提交。 當您執行git svn dcommitgit svn rebase時 ,引用將更新為代表svn repo的HEAD修訂版本的提交。

為了執行您描述的dcommit,您可以:

git svn rebase (to update your current branch to the latest svn revision)
git rebase -i trunk (to rewrite local history before dcommit-ting)
git svn dcommit 

在最后一步之后, 中繼參考將更新為剛剛提交的svn修訂版。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM