【问题标题】:Creating a new branch for re-initializing the entire project in git创建一个新分支以在 git 中重新初始化整个项目
【发布时间】:2021-11-04 23:08:26
【问题描述】:

几年前我一直在做一个项目。尽管那个项目仍然运作良好,但它的逻辑和基础形式需要一个巨大的改变。该项目需要进行大量改进,这就是为什么我决定重新创建该项目并从头开始的原因。我正在使用 Git 来管理我的项目。

创建一个新分支(如“重新创建”)然后删除所有内容并开始重建项目并将其合并回主/主分支是否正常?我认为它有效,但不确定这个概念,因为分支主要用于创建新功能或修复问题,而不是重建整个项目。

我对改进当前项目和避免重建它的主要担忧是根本没有测试,到处都是脏代码。

【问题讨论】:

  • normal 这个词似乎在这里做了很多繁重的工作。如果您的问题是“Git 可以做到这一点”,那么答案当然是“是”。如果您的问题是“这在实践中是否常见”,您需要对这些实践者进行调查。
  • 如果在实践中很常见,则更有可能。我的朋友@adrian-j-moreno 建议我将本地存储库分叉到另一个目录中。提交所有更改后,我应该将其合并回原始存储库。那是那里唯一的解决方案吗?感谢您签出。
  • 这不是唯一的解决方案,但使用分叉(只是服务器端克隆)可能有助于防止意外尝试将本地工作发送到错误的项目范围的存储库。我自己可能不会为 fork 而烦恼,但我从过去(十多年前)就已经习惯了 Git。

标签: git merge initialization branch rebuild


【解决方案1】:

我觉得你需要处理两件事:

  1. Create a fork of your current repository。这将是一个具有新“起点”的副本。

您可以创建自己的本地存储库的分支。这样做的目的是,您可以从分叉点开始处理现有 repo 的副本,然后独立于原始 repo 上所做的工作进行自己的更改。

我在这里开始了一个示例 repo:

/c/code/testing

# created a new folder
git@local testing
$ mkdir repoA
$ cd repoA

# in that folder
git@local repoA
$ git status
fatal: not a git repository (or any of the parent directories): .git

# create new repo
git@local repoA
$ git init
Initialized empty Git repository in C:/code/testing/repoA/.git/

# check status
git@local repoA (main)
$ git status
On branch main

No commits yet

nothing to commit (create/copy files and use "git add" to track)

# go back to parent folder
git@local repoA (main)
$ cd ../

git@local testing
$ ls -l
total 0
drwxr-xr-x 1 adrian.moreno 197121 0 Nov  3 17:04 repoA/

# clone (fork) my local repo to a new one.
git@local testing
$ git clone repoA repoB
Cloning into 'repoB'...
warning: You appear to have cloned an empty repository.
done.

# Now I have two repos. 
# repoA is forked from the last commit on repoA.
git@local testing
$ ls -l
total 0
drwxr-xr-x 1 adrian.moreno 197121 0 Nov  3 17:04 repoA/
drwxr-xr-x 1 adrian.moreno 197121 0 Nov  3 17:04 repoB/
  1. 准备好后,merge changes from your forked repo back to the parent

您可能永远不需要进行第二步。您可以在分叉版本上完成所有工作并使用它运行。

【讨论】:

  • 感谢您的退房。真的很感激。问题是该项目也在我的个人帐户上维护。我可以再次分叉我自己创建的回购吗?因为它已经存在了。
  • 老实说,我对这背后的想法有点困惑。
猜你喜欢
  • 2022-01-07
  • 2011-09-28
  • 1970-01-01
  • 2023-03-07
  • 1970-01-01
  • 1970-01-01
  • 2012-03-20
  • 2012-09-17
相关资源
最近更新 更多