我克隆了公共存储库的分支并进行了一些更改;然后创建了一个拉取请求。
但是,在创建拉取请求后推送到我的分叉的任何更改也会包含在拉取请求中,即使我从未请求包含它们?
为什么 Git 显示了我没有为其创建拉取请求的更改?我怎样才能避免它?
我正在 GitHub 上使用我们公司应用程序的一个分支。我们有一个开发分支,我们正在从开发创建新分支来处理类似的工作,feature/new-feature并在工作完成后创建对原始存储库的拉取请求。当然,在创建 PR 之前要进行变基。
变基后,来自不同开发人员的一些提交(commitA和commitC)合并到我的分支。现在在我的 PR 中,这些提交也列为文件更改。并且与开发有冲突。
很快,我的 PR 的提交列表是这样的:
commitA <---this commmit is different developers and shouldn't be listed here
commitB
commitC <---this commmit is different developers and shouldn't be listed here
...
如何从我的 PR 中删除这些提交?这些提交(commitA 和 commitC)也在开发分支上。
我的分支应该只有提交 B,commitA 和 commitC 属于开发分支,而不是我的分支。
我的公司使用 VSTS 和 git。当我在 VSTS 中的开发分支中完成拉取请求时,会自动选中删除功能分支的复选框,但除非我更改功能分支的权限以允许我所属的管理员用户组,否则它不会删除。重写并销毁历史记录(强制推送)的成员。
每次完成拉取请求时都执行此操作有点乏味,但我并不热衷于为该管理员用户组的所有成员提供始终删除功能分支的能力。看来可能存在意外删除。当我正在完成经过审查和批准的拉取请求时,我确实对删除开发分支感到非常满意。就权限而言还有第三种选择吗?贵公司如何制定删除功能分支的政策?
我正在使用带有 Git 的本地 BitBucket 服务器。我正在尝试开始持续集成,因此我设置了一个本地 Jenkins 实例。目标是让 Jenkins 检查拉取请求并构建项目,然后向 BitBucket 报告结果。
在 BitBucket 中,我使用Webhook 与 Jenkins 进行 Stash,每次创建/更新拉取请求时它都会通知我的 Jenkins 实例。
在 Jenkins 中,当从上面的插件通知时,我使用Stash pullrequest 构建器插件让 Jenkins 签出 pullrequest。我已经使用了文档中的设置,即
Refspec: +refs/pull-requests/*:refs/remotes/origin/pr/*
Branch Specifier: origin/pr/${pullRequestId}/from
Run Code Online (Sandbox Code Playgroud)
差不多就可以用了...
当我在 BitBucket 中创建新的拉取请求时,Jenkins 会收到通知,检查 PR 并将结果报告回 BitBucket。到目前为止,一切都很好。
但是,当我更新 PR(即提交新代码并推送到 BitBucket)时,Jenkins 会被触发,但仍然检查 PR 中的先前提交,而不是新提交。
我做了一些调查但陷入困境。据我了解,Refspec指定我应该映射refs/remotes/origin/pr/*到refs/pull-requests/*本地。然而,当我对现有 PR 进行新提交时,BitBucket 似乎并未更新 PR 的引用,这导致 Jenkins 只能找到旧的 PR。
当我git ls-remote origin在提交并将更新推送到现有 PR 后运行时,我得到以下信息:
edf245 (new commit)... refs/heads/feature/Name-Of-My-Branch-That-I-Created-Pull-Request-From-pr
af774f (previous commit …Run Code Online (Sandbox Code Playgroud) 我正在使用以下代码获取VSTS 存储库上所有已完成的拉取请求的列表。但是,获取的拉取请求列表仅包含有限的拉取请求列表,而不是全部。知道我做错了什么吗?
这是代码:
/// <summary>
/// Gets all the completed pull requests that are created by the given identity, for the given repository
/// </summary>
/// <param name="gitHttpClient">GitHttpClient that is created for accessing vsts.</param>
/// <param name="repositoryId">The unique identifier of the repository</param>
/// <param name="identity">The vsts Identity of a user on Vsts</param>
/// <returns></returns>
public static List<GitPullRequest> GetAllCompletedPullRequests(
GitHttpClient gitHttpClient, Guid repositoryId, Identity identity)
{
var pullRequestSearchCriteria = new GitPullRequestSearchCriteria
{
Status = PullRequestStatus.Completed,
CreatorId = identity.Id,
}; …Run Code Online (Sandbox Code Playgroud) 一些个人背景:我以前使用过 git 子模块,但说实话,我不是粉丝,完全接受这可能是我对它们工作方式的细微差别的无知。当我之前将它们用于共享库时,我git pull在子模块中使用 a 提取更新,然后modified … (new commits)在父模块中显示。我得到这个-我已经改变了提交的指针.git沿着这些线路的元数据,或什么的,我需要commit和push父回购这种变化,所以它用正确的子模块相关的承诺。
我的问题:我现在有一份新工作,我从事的项目有一个子模块。它不是共享库 - 构建过程依赖于一些凭据,出于安全原因,这些凭据每天更新并通过子模块分发。所以每天都有一个拉取更新的过程,它发生在git submodule update --remote.
两个奇怪的地方:(1)子模块永远处于分离头状态;(2)status父模块保持干净,子模块没有变化。
那么为什么这是一个问题呢?问题是,我的拉取请求与“已更改文件”列表中的子模块一起显示。我不认为这实际上会导致问题,但一位同行评审员对这些变化有特别的例外,因为它们不应该存在。由于子模块从未在git status输出中显示为已修改,因此我不知道我如何提交任何更改,以及如何阻止它。
(这是 GitHub 中的私有存储库 - 我有一个分支,并且正在我的分支的一个分支中工作。子模块仍然指向未分支的主存储库。)
(显然这在其他一些开发人员的 PR 中也很明显,但不是在每个 PR 中。)
我是这家公司的新手,我可以不用被描绘成无法正常进行版本控制的人!但是我需要一个比我更具有 git 智慧的人来告诉我发生了什么。
(就我个人而言,我的解决方案是不使用 submodule,这可能不在我的控制范围内。)
我想修复 Microsoft 文档存储库中的一些拼写错误。我点击了它的新拉取请求按钮。这导致显示以下页面:
如您所见,绿色的Create pull request按钮被禁用。我如何从这里开始?在其他存储库(例如 Amazon 文档)中,该过程的工作方式有所不同,我可以直接创建拉取请求。
我在使用 GitHub 时遇到了一个奇怪的问题,想知道这是否是设计使然。我合并一个拉取请求,有时也会合并一个单独的拉取请求。这似乎是自动发生的。我注意到,对于 GitHub 自动合并的拉取请求,其分支已合并到我手动合并的拉取请求的分支中。
例如,我有一个分支A,我正在为其合并一个 PR。在合并branch的PR之前,我将另一个分支branch合并B到branch中。然后我合并branch的PR ,branch的PR就会自动合并。AAAB
这是设计使然吗?这对我来说没有任何意义。为什么 GitHub 会因为我将B分支合并到dev分支而假设分支已准备好合并到A?在我们的团队中,我们将分支相互合并,以最大程度地减少合并 PR 时的冲突。我还想知道是否可以在 GitHub 的某个地方更改此行为。
我试图在我的ios6项目中使用EGOTableViewPullRefresh但是在构建时我无法通过链接问题.将源包含到我的项目后,将-fno-objc-arc标志添加到EGORefreshTableHeaderView.m然后对源进行所有必要的更改,以便我可以使用ARC构建(删除'release'等)我遇到了以下链接问题:
Undefined symbols for architecture i386:
"_CATransform3DIdentity", referenced from:
-[EGORefreshTableHeaderView setState:] in EGORefreshTableHeaderView.o
"_CATransform3DMakeRotation", referenced from:
-[EGORefreshTableHeaderView setState:] in EGORefreshTableHeaderView.o
"_OBJC_CLASS_$_CALayer", referenced from:
objc-class-ref in EGORefreshTableHeaderView.o
"_OBJC_CLASS_$_CATransaction", referenced from:
objc-class-ref in EGORefreshTableHeaderView.o
"_kCAGravityResizeAspect", referenced from:
-[EGORefreshTableHeaderView initWithFrame:arrowImageName:textColor:] in EGORefreshTableHeaderView.o
"_kCATransactionDisableActions", referenced from:
-[EGORefreshTableHeaderView setState:] in EGORefreshTableHeaderView.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)
有没有人使用EGOTableViewPullRefresh遇到这个问题?
谢谢!
pull-request ×10
git ×6
github ×5
azure-devops ×3
bitbucket ×1
c# ×1
git-branch ×1
ios ×1
iphone ×1
jenkins ×1
objective-c ×1
svn ×1
validation ×1