[英]How to set a git repository's remote url without updating the local repository it's cloned from?
[英]Create a git repository from existing folder on local computer as if it's were cloned from remote repository
我有一個項目,其源代碼托管在 SVN 中。 我想把它推送到 github 以便有更好的年輕的提交審查能力。 同時還保留一個由 SVN 和 git 跟蹤的文件夾(無補丁)。
在我的本地機器上,我檢查了 SVN 的新副本,初始化了 git 存儲庫並將其推送到遠程。
其他開發人員如何在現有文件夾中初始化 git 存儲庫,以便他們的本地存儲庫就像從遠程克隆一樣?
我嘗試過的(基於多個 SO 答案)是這樣的:
$ cd local_svn_working_copy
$ git init .
$ git add .
$ git commit -m "tmp"
$ git remote add origin git@github...
$ git pull --allow-unrelated-histories
直到我創建了一個新分支(使用git checkout -b new-branch
),這一切似乎都運行良好,將其推送到遠程並開始填寫合並請求。 因為我的合並請求包括:
這似乎不對,因為我希望只在我的本地更改中看到。 什么是正確的策略?
當您每次創建一個新的本地提交時,由於時間戳,它是一個全新的唯一提交。 你不能那樣做。
通過在local_svn_working_copy
文件夾中運行以下命令,您只能下載.git
文件夾內容
mkdir .git
git clone --mirror git@github... .git
並從.git/config
文件中刪除bare=true
行。
我會做以下事情:
cd local_svn_working_copy
git init
git remote add origin https://github...yadda.yadda...
git fetch origin
git reset origin/main # NOT --hard!
此時, git status
將報告我的本地 state 是否與當前 state 上的 state 有任何不同。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.