- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
从最近开始,我的分支现在是 默认 跟踪并推送到远程主机,即使我这样做 git push -u origin branch_name
即使我使用 matching
作为我的push.default
选项。
# --------
# STEP 1
# --------
$ git checkout -b my_branch
Branch my_branch set up to track local branch master.
Switched to a new branch 'my_branch'
# --------------------------------------------------------------------------------
# STEP 2: (same behavior BTW with current/upstream/simple)
# --------------------------------------------------------------------------------
$ git config --global push.default matching
# --------
# STEP 3:
# --------
$ git push -u origin my_branch
Counting objects: 8, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (8/8), done.
Writing objects: 100% (8/8), 1.16 KiB | 0 bytes/s, done.
Total 8 (delta 7), reused 0 (delta 0)
To XX:YYY/my_repo
62d390c..4e4baa1 my_branch -> master
Branch my_branch set up to track remote branch master from origin.
STEP 2
,我得到一个错误:
$ git branch --set-upstream-to=origin/my_branch
error: the requested upstream branch 'origin/my_branch' does not exist
hint:
hint: If you are planning on basing your work on an upstream
hint: branch that already exists at the remote, you may need to
hint: run "git fetch" to retrieve it.
hint:
hint: If you are planning to push out a new local branch that
hint: will track its remote counterpart, you may want to use
hint: "git push -u" to set the upstream config as you push.
.git/config
手动,但
为什么以上不起作用吗?
$ git remote -v
origin XX:YYY/my_repo (fetch)
origin XX:YYY/my_repo (push)
$ git --version
git version 2.9.2
最佳答案
这一点是可疑的,因为中间线不应该出现:
$ git checkout -b my_branch
Branch my_branch set up to track local branch master.
Switched to a new branch 'my_branch'
git checkout -b foo
在存储库中:
$ git checkout -b foo
Switched to a new branch 'foo'
gco
别名或脚本有
--track
在里面某处。
编辑 : 原来是因为你配置了
branch.autoSetupMerge
至
always
,因此从本地分支创建的新分支会跟踪其本地分支。
$ git branch --set-upstream-to=origin/my_branch
error: the requested upstream branch 'origin/my_branch' does not exist
origin/my_branch
不存在。好吧,它还不存在:你需要说服你的 Git 拥有一个
origin/my_branch
. Git 就是 Git,有很多方法可以做到这一点,但可能是最好的一种方法,我们稍后会介绍。
$ git push -u origin my_branch
Counting objects: 8, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (8/8), done.
Writing objects: 100% (8/8), 1.16 KiB | 0 bytes/s, done.
Total 8 (delta 7), reused 0 (delta 0)
To XX:YYY/my_repo
62d390c..4e4baa1 my_branch -> master
Branch my_branch set up to track remote branch master from origin.
my_branch
已经有一个上游设置
master
(不是
origin/master
,只是
master
),您的 Git 要求另一个 Git 使用名称
master
,就好像你已经运行了:
git push origin my_branch:master
git push
没有其他问题,他们的一方做你方要求的——设置他们的
master
匹配您的
my_branch
——然后你的一方按照你的要求做
-u
,即从
master
更改上游设置至
origin/master
.这当然不是你要问的。
master
时,您的 Git 替换为
master
似乎有点邪恶,即
branch.my_branch.remote
只是
.
,而不是
origin
。但假设我们无法更改 Git本身...)
git push -u origin my_branch:my_branch
.这会覆盖当前的上游设置,以便您的 Git 要求他们的 Git 写入 my_branch
.如果成功——它应该——你的 Git 现在将拥有 origin/my_branch
并将更改 my_branch
的上游设置至 origin/my_branch
.git push -u
来说,这通常是正确的。 (包括接下来的两种方法,但在这两种情况下, future 不会留下任何陷阱)。 git push
之前显式删除当前上游设置: git branch --unset-upstream my_branch
(或任何等价物,包括编辑 .git/config
文件)。现在没有现有的上游,你的 Git 不会要求他们的 Git 使用名称 master
.my_branch
(而不是 master
)在 origin
上,我们回到第一种方法发生的事情。 master
首先作为上游。效果同方法二。git update-ref
,而不是
git branch
.但是,如果您这样做,您可以使用
--set-upstream-to
在实际创建远程分支的推送之前。 (另一种困难的方法是您使用的技巧,即直接编辑
.git/config
,或使用
git config
进行等效操作。这允许您将上游设置为尚不存在的东西,因为所有 Git 都在这里真正做正在存储名称。)
关于git - 分支不断跟踪master,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38730369/
如果这不是一个错误,那就是另一个错误。如果不是那样的话,那就是别的东西了。我觉得我的项目已经改变了很多,现在只是试图解决代码签名问题,结果一切都搞砸了。我严格按照说明进行操作,但出现错误,例如当前的“
我不确定是否有一些我不知道的内置变量或规则,或者 make 是否有问题,或者我只是疯了。 对于我的一个项目,我有一个如下的 makefile: CC=g++ CFLAGS=-O3 `libpng-co
我有大约 10 个 div,它们必须不断翻转,每个 div 延迟 3 秒 这个 codrops 链接的最后一个效果是我正在寻找的,但无需单击 div http://tympanus.net/Devel
我如何使用 jQuery 持续运行 PHP 脚本并每秒获取响应,以及将鼠标上的少量数据发送到同一脚本? 我真的必须添加一些随机扩展才能让这么简单的计时器工作吗? 最佳答案 To iterate is
JBoss 4.x EJB 3.0 我见过如下代码(大大简化): @Stateless @TransactionAttribute(TransactionAttributeType.NOT_SUPPO
使用 PHPStorm,我试图忽略每次尝试进行 git 提交时 pop 的 workspace.xml。 我的 .gitignore 看起来像: /.idea/ .idea/workspace.xml
我是一名优秀的程序员,十分优秀!