Py学习  »  Git

有人能澄清一下git的工作流程吗?远程服务器上有一个分支?

kevin0110w • 3 年前 • 1083 次点击  

我使用sourcetree。

我通常的工作流程是:

  1. 从origin/main获取所有更改并将其拉入my local
  2. 创建本地分支机构- branch-1
  3. 做开发工作
  4. 犯罪
  5. 拉动(带再底座) origin/main )
  6. 推动 origin/branch-1
  7. 提交PR合并 起源/分支-1 进入 起源/主要

然而,如果公关被拒绝,我需要做进一步的改变,那么这个过程应该是什么?

我现在做的和上面一样,继续 local/branch-1 然后重新从3开始,除了sourcetree似乎让我想从 起源/分支-1 (在第5阶段)而不是 起源/主要 1.我不确定这是否正确?还是我应该退出 起源/分支-1 起源/主要 还是什么?

非常感谢。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/133598
 
1083 次点击  
文章 [ 3 ]  |  最新文章 3 年前
eftshift0
Reply   •   1 楼
eftshift0    4 年前

实际上,我会跳过使用本地等效的 origin/main 并且会使用 起源/主要 作为我的上游分支:

git checkout -b my-feature1 origin/main

然后,如果我以后需要从上游提取更改:

git pull -r

当你想进入远程分支时:

git push origin my-feature1

但这显然不是一个非常流行的工作流。

Gaël J
Reply   •   2 楼
Gaël J    4 年前

我将替换第5步( git pull )与:

# Retrieve work done on other branches without applying it, especially it updates your origin/main
git fetch
# Rebase your work on top of origin/main
git rebase origin/main

使用 pull 通常 将远程数据拉入同一分支。

Matt
Reply   •   3 楼
Matt    4 年前

如果公关被拒绝了,我需要做进一步的改变,那么这个过程应该是什么?

继续关注你的功能分支。编辑、添加、提交并再次推送到功能分支的远程跟踪分支。完成。新的提交将自动添加到请求中。

例如,在 myfeature (假设其上游已配置为 origin/myfeature ,并且有一个正在等待的拉取请求):

echo hello > test.txt
git add test.txt; git commit -mtesting
git push

如果在浏览器中转到pull请求,您将看到此提交已按良好顺序附加到pull请求。


其他评论:

从origin/main获取所有更改并将其拉入my local

这可能是不必要的。您可以直接获取并启动功能分支 origin/main --no-track 当你这么做的时候,为了不被跟踪 起源/主要 错误地例如:

git fetch
git switch --no-track -c myfeature origin/main

这就产生了分支 我的特征 从更新的 main .

拉动(从原点/主方向重新基准)

这是不必要的。同样,您可以获取功能分支,然后将其重设为 ,但一旦你推动了这可能是一个坏主意,因为你现在将推动重写历史;而且可能没有必要。

主要的 ,最好先提取,然后合并 在按下功能分支之前,将其插入功能分支。

例如,在 我的特征

git fetch
git merge origin/main 

你的枝干永远不需要拔掉。

sourcetree似乎让我想从 origin/branch-1 (在第5阶段)而不是 起源/主要

不,您可以从Sourcetree中的任何远程分支提取。打开左边的Remotes类别,点击一个分支,然后选择Pull from。然而,我强烈建议不要使用pull。