gpt4 book ai didi

git - 使用 GIT 分支/分支

转载 作者:太空狗 更新时间:2023-10-29 14:48:08 31 4
gpt4 key购买 nike

我使用 Git 有一段时间了,但尽管在博客和教程上花了很多时间,但我仍然无法理解某些功能...:)

我正在与其他人合作一个项目,我的老板为此在 bitBucket 上创建了一个存储库。

我在本地克隆了它,并且已经对 master 分支做了一些提交,并 pull 了其他人的一些更改。我现在想做长期的修改。我将不得不将其中一些推送到 master 分支,而将其他的留给自己。我想我可以 fork master 分支来拥有我自己的版本(?)。

我对应该遵循的程序有点困惑。我应该创建自己的分支吗?还是 fork ?

如果我是对的, fork 将在我的 BitBucket 帐户中创建另一个版本,我应该将其复制到我的计算机上(在与 master 分支项目不同的目录中?)以便进行修改。

另一方面,在我看来,GIT 的一个很棒的特性是在具有所有不同现有分支的单个目录中本地工作,从一个分支切换到另一个分支,并在您需要时将您的修改推送到远程仓库完成(并可能到 master 分支)。

在决定之前,我有几个问题要问你们:

问题 1:如果我在我的 fork 版本中修改文件,我可以将它们推送到 master 分支吗?怎么办?

问题 2:如何将其他用户的新提交(在 master 分支上) merge 到我的 fork 版本中?

问题 4:我的 fork 版本的 remote repo 和 master repo 有什么关系吗?

问题5:我的 fork 版本内容是否会被团队其他成员看到?

如果有人能为我澄清这一点,我将不胜感激!

谢谢。

最佳答案

没有 fork : fork 是在 BitBucket 上克隆那个 repo 以获得你自己的(在 BitBucket 上):它是在服务器端的克隆。
请参阅插图:

仅当您无法直接推送到上游仓库时才需要 fork :您推送到您的 fork ,然后向上游仓库发出 pull 请求。
这里不是这种情况。

只需分支并将您的分支推送到您需要的唯一一个 BitBucket 存储库(您对其具有写入权限)。

每当您有修改需要同时发布到 master 和您的分支上时,

x--x--x                  (master => origin/master)       \         y--y--c--y--c--y (yourBranch  => origin/yourBranch)
  • 重新排序所述分支(rebase interactive)以使常见提交首先出现,
x--x--x                  (master => origin/master)       \         c--c--y--y--y--y (yourBranch  => origin/yourBranch)
  • git pull master(为了确保本地克隆上的 master 反射(reflect)其他人在 BitBucket 上发布的最新提交)
x--x--x--x--x            (master => origin/master)       \         c--c--y--y--y--y (yourBranch  => origin/yourBranch)
  • master 之上重新建立分支并测试是否一切仍然编译并通过测试
x--x--x--x--x                  (master => origin/master)             \               c--c1-y--y--y--y (yourBranch  => origin/yourBranch)
  • 将分支中的新公共(public)提交 merge 到 master:
    git checkout 大师; git merge c1
x--x--x--x--x--c--c1                 (master => origin/master)                   \                     y--y--y--y (yourBranch  => origin/yourBranch)
  • git push master(因为您在推送之前 pull 了 master:您的本地 master 相对于BitBucket 'origin' master。您的推送是 BitBucket 端的一个微不足道的 merge :您只是引入 提交)

  • git checkout yourBranch && git push -f origin yourBranch
    因为你已经rebased yourBranch,你已经改写了它的历史,你需要强制推送到BitBucket端。
    但由于它是您的分支,所以没问题(没有其他人会从中提取,并且需要重置它以考虑您的新历史记录)。


请注意,另一种避免 rebase --interactive 步骤来重新排序您的常见提交的方法是 cherry-pick 它们直接从 yourBranchmaster
但我不喜欢 cherry-pick ,因为它:

关于git - 使用 GIT 分支/分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13448560/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com