创建相同重复文件夹的不同分支
Creating different branches of the same duplicate folder
我正在做一个项目,我的git知识很基础。试图将一个分支合并到 master 分支,但具有不同的功能,我想用我的基本逻辑(我正在寻求轻松)来解决这个问题,即使这不是解决问题的最佳方法。
我用不同的名称复制了同一个项目文件夹,试图创建具有功能名称的分支。功能都作用于不同的文件,有时作用于同一个文件,但我想将不同的消息提交到不同的分支,然后将它们与主分支一一合并。
第一个挑战是为什么我转到不同的文件夹,却得到相同的分支名称。我可以根据功能重命名分支吗?
这是一个有效的工作流程吗?
在git中,创建文件夹的副本来处理不同的功能并不常见,因为分支是如此轻量级,并且很容易在单个文件夹内切换分支。
不过,如果项目很大,设置起来很复杂,或者每个功能都需要大量的外部配置来测试,那么在单独的文件夹中工作可能会更容易。
对于 git 每个文件夹都是一个单独的存储库,因此假设您有功能 X、Y 和 github 存储库 G 的文件夹,那么这意味着您实际上有 3 个单独的存储库: X、Y 和 G.
做你想做的事情的一种方法是首先根据需要准备功能回购 X,然后使用 git pull/push 将其与 G 同步。然后准备功能回购 Y 并将其与 G 同步。
最后你仍然会有 3 个独立的回购协议,但每个都会有分支 feature-x、feature-y 和 master 具有相同的提交。
因此,如果您在文件夹 X 中要从当前状态创建一个分支 "feature-x" 并切换到该分支,您将使用:
git checkout -b feature-x
我想你已经做出了承诺,git log
看起来不错。
然后通过 git push
与 "G" 同步。这将添加分支 feature-x
和您对 G.
的新提交
此时您实际上可以转到 github 并创建一个可以通过 Web 界面合并到 master 的拉取请求。
如果你不想通过 pull request web UI 来完成它,那么你只需首先在本地文件夹 X 中准备你的 master 分支到你想要的状态,最简单的是:
git checkout master
git merge feature-x
然后使用git push
同步X和G的master分支。
最后对 Y 和其他特征重复相同的过程。
注意:在功能库 Y 中要做的第一件事是从 github 库 G 中获取主分支的新状态,你可以通过 git pull
.
git checkout master
git pull
此时请确保您在 Y 中的 master 没有更改,否则它将在 master 的 Y 状态之上合并 master 的 G 状态。 git fetch
是不进行合并的 git pull
的替代方法。
如果它被更改,要在不切换分支的情况下备份您的状态,请执行 git branch feature-y
,并通过 git reset --hard origin/master
将 master 恢复到原始状态。然后做 git pull
.
是安全的
我正在做一个项目,我的git知识很基础。试图将一个分支合并到 master 分支,但具有不同的功能,我想用我的基本逻辑(我正在寻求轻松)来解决这个问题,即使这不是解决问题的最佳方法。
我用不同的名称复制了同一个项目文件夹,试图创建具有功能名称的分支。功能都作用于不同的文件,有时作用于同一个文件,但我想将不同的消息提交到不同的分支,然后将它们与主分支一一合并。
第一个挑战是为什么我转到不同的文件夹,却得到相同的分支名称。我可以根据功能重命名分支吗?
这是一个有效的工作流程吗?
在git中,创建文件夹的副本来处理不同的功能并不常见,因为分支是如此轻量级,并且很容易在单个文件夹内切换分支。
不过,如果项目很大,设置起来很复杂,或者每个功能都需要大量的外部配置来测试,那么在单独的文件夹中工作可能会更容易。
对于 git 每个文件夹都是一个单独的存储库,因此假设您有功能 X、Y 和 github 存储库 G 的文件夹,那么这意味着您实际上有 3 个单独的存储库: X、Y 和 G.
做你想做的事情的一种方法是首先根据需要准备功能回购 X,然后使用 git pull/push 将其与 G 同步。然后准备功能回购 Y 并将其与 G 同步。
最后你仍然会有 3 个独立的回购协议,但每个都会有分支 feature-x、feature-y 和 master 具有相同的提交。
因此,如果您在文件夹 X 中要从当前状态创建一个分支 "feature-x" 并切换到该分支,您将使用:
git checkout -b feature-x
我想你已经做出了承诺,git log
看起来不错。
然后通过 git push
与 "G" 同步。这将添加分支 feature-x
和您对 G.
此时您实际上可以转到 github 并创建一个可以通过 Web 界面合并到 master 的拉取请求。
如果你不想通过 pull request web UI 来完成它,那么你只需首先在本地文件夹 X 中准备你的 master 分支到你想要的状态,最简单的是:
git checkout master
git merge feature-x
然后使用git push
同步X和G的master分支。
最后对 Y 和其他特征重复相同的过程。
注意:在功能库 Y 中要做的第一件事是从 github 库 G 中获取主分支的新状态,你可以通过 git pull
.
git checkout master
git pull
此时请确保您在 Y 中的 master 没有更改,否则它将在 master 的 Y 状态之上合并 master 的 G 状态。 git fetch
是不进行合并的 git pull
的替代方法。
如果它被更改,要在不切换分支的情况下备份您的状态,请执行 git branch feature-y
,并通过 git reset --hard origin/master
将 master 恢复到原始状态。然后做 git pull
.