当功能分支重新基于 origin/master 而不是合并时,如何安全地删除它的本地副本。我知道我可以git branch -D,但我想避免盲目这样做,让 git 告诉我哪些分支可以安全删除。
例如:我有功能分支my-feature,我将其推送到origin/my-feature,制作 PR,然后origin/my-feature重新基于origin/master,然后删除。不过,本地my-feature仍然存在。* 有什么方法可以检测到那里的更改已有效包含在中吗origin/master?
git diff origin/master...my-feature不起作用,因为共同的祖先origin/master没有改变。检查是否git diff origin/master..my-feature为空有效,但只能在变基后立即进行。如果任何其他更改在我的基础上重新建立,这将显示这些更改。
有没有办法删除远程版本已被删除的本地分支?(但不是从未有远程版本的本地分支)。或者,如果我避免删除origin/my-feature,那么我可以在本地做些什么来安全地删除两者origin/my-feature吗my-feature?
* 如果我足够自律,我会尽量记住在删除远程分支后立即删除本地分支,但有时我会忘记。
和go一起玩,我把这段代码拼凑在一起:
package main
import "fmt"
const N = 10
func main() {
ch := make(chan int, N)
done := make(chan bool)
for i := 0; i < N; i++ {
go (func(n int, ch chan int, done chan bool) {
for i := 0; i < N; i++ {
ch <- n*N + i
}
done <- true
})(i, ch, done)
}
numDone := 0
for numDone < N {
select {
case i := <-ch:
fmt.Println(i)
case <-done:
numDone++ …Run Code Online (Sandbox Code Playgroud) 我有一些Foo结构需要知道其他对象的状态要初始化,所以我为它创建一个工厂方法:
struct Foo {
Foo(int x) : x_(x) {}
int x_;
};
struct FooFactory {
Foo MakeFoo() {
return Foo(++counter);
}
int counter = 0;
};
Run Code Online (Sandbox Code Playgroud)
因此,虽然呼叫者可以这么做Foo(++factory.counter),但能够说出来更清洁factory.MakeFoo().
但是这段代码需要复制,并说我们想避免这种情况.我们可以使用移动构造函数.
struct Foo {
Foo(int x) : x_(x) {}
Foo(Foo& foo) = delete;
Foo(Foo&& foo) : Foo(foo.x_) { foo.x_ = 0; }
int x_;
};
struct FooFactory {
Foo MakeFoo() {
return Foo(++counter);
}
int counter = 0;
};
Run Code Online (Sandbox Code Playgroud)
哪个有效,但看起来仍然比我想要的"更多".类似的东西Foo foo = factory.MakeFoo()仍然会创建一个临时的内部, …
我很迷失尝试创建自定义存储库规则的方法...
pypi.bzl:
def _impl(repository_ctx):
repository_ctx.execute(['echo', '"testing testing 123"'])
repository_ctx.execute(['pip', 'download', repository_ctx.attr.package])
repository_ctx.file("BUILD",
"""
py_library(
name = "lib",
srcs = glob(["*.py"]),
)
""")
pypi_package = repository_rule(
implementation=_impl,
attrs={"package": attr.string(mandatory=True)},
)
Run Code Online (Sandbox Code Playgroud)
WORKSPACE:
load("//:pypi.bzl", "pypi_package")
pypi_package(
name = "dateutil",
package = "python-dateutil",
)
Run Code Online (Sandbox Code Playgroud)
BUILD:
py_binary(
name = "app",
srcs = ["app.py"],
deps = ["@dateutil//lib"],
)
$ bazel build app
ERROR: /Users/alec/code/bazel-pypi/BUILD:1:1: no such package '@dateutil//lib': BUILD file not found on package path and referenced by '//:app'.
ERROR: Analysis of target …Run Code Online (Sandbox Code Playgroud)