簡體   English   中英

從本地計算機上的現有文件夾創建 git 存儲庫,就好像它是從遠程存儲庫克隆的一樣

[英]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 ),這一切似乎都運行良好,將其推送到遠程並開始填寫合並請求。 因為我的合並請求包括:

  1. 我最初的提交“tmp”
  2. 合並 main 和 origin/main 分支
  3. 我在當前分支中所做的本地更改

這似乎不對,因為我希望只在我的本地更改中看到。 什么是正確的策略?

當您每次創建一個新的本地提交時,由於時間戳,它是一個全新的唯一提交。 你不能那樣做。

通過在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.

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