我使用以下命令推送到我的远程分支:
git push origin sandbox
Run Code Online (Sandbox Code Playgroud)
如果我说
git push origin
Run Code Online (Sandbox Code Playgroud)
这会推动我的其他分支的变化,还是只更新我当前的分支?我有三个分支:master,production和sandbox.
该git push文件是不是这个很清楚,所以我想澄清这一点为好.
哪些分支和遥控器可以git push完全更新以下命令?
git push
git push origin
Run Code Online (Sandbox Code Playgroud)
origin 上面是一个遥控器.
据我所知,git push [remote] [branch]只会将该分支推送到远程.
我使用git作为Subversion的前端(通过git svn).
因此,对于每个svn trunk/branch,我在git中有一个名为"remotes/xxx"的远程分支.例如"遥控器/主干","遥控器/冷藏特征".
现在我希望每个远程分支都有一个"默认"本地分支,用于dcommit.问题是我希望这些分支以Subversion分支命名,比如"trunk","coolfeature",所以我在git中有以下分支:
trunk
coolfeature
remotes/trunk
remotes/coolfeature
Run Code Online (Sandbox Code Playgroud)
问题是,每当我引用"trunk"或"coolfeature"时,git抱怨分支名称含糊不清.没什么大不了的,但我觉得不舒服.
问题是,我怎么能处理这个警告,假设简单地重命名分支不是我想要做的.这类案件的最佳做法是什么?
昨天,我从一个分支创建了一个分支,将其推送到原点,然后将其合并回 master。你可以在这里看到:
$ history |less
8358 git co master
8359 commit # shortcut that adds all and commits
8360 push # shortcut that `git push`'s
8361 git lg # shortcut that logs my output
8362 git co 1600
8363 git co -b 1601
8364 npm run test
8365 npm run test
8366 npm run test
8367 npm run test
8368 npm run test
8369 npm run test
8370 npm run test
8371 npm run test
8372 npm run test
8373 …Run Code Online (Sandbox Code Playgroud) 我已经在github上分叉了一个项目,并且需要在我分叉后以diff格式进行一系列更改.
如果你想知道 - 我已经分叉了Apache httpd,我正在更改核心中的一些代码.目前我没有提交任何更改,运行git diff,并在RPM构建过程中将其输出用作针对vanilla httpd源的补丁.当然,这是错误的,但我不知道如何正确地做到这一点.我所知道的是我最终需要一个差异.
虽然像"git log"这样的命令会很乐意接受同一参考的不同表达式,例如
refs/heads/master
heads/master
master
Run Code Online (Sandbox Code Playgroud)
对于"git update-ref",情况并非如此.例如
git update-ref master HEAD^
Run Code Online (Sandbox Code Playgroud)
是不一样的
git update-ref refs/heads/master HEAD^
Run Code Online (Sandbox Code Playgroud)
第一个命令创建一个新的ref .git/master(反过来引入了关于refs/heads/master的歧义).只有第二个命令真正更新了主人的脑袋.(git的/参/头/主)
为什么git update-ref接受没有"refs /"前缀的引用?是否应该至少有警告或命令行选项来强制创建此类引用?
我花了很长时间才弄明白为什么
git update-ref master HEAD^
Run Code Online (Sandbox Code Playgroud)
没有按预期工作.
只是一个免责声明:在使用git几个月后,我仍然不知道我在使用它时正在做什么.事情的唯一时间是我完全按照我在网页上的各种页面上找到的说明.
我正在尝试做的是更新我的存储库,它是从另一个项目派生的.我发现这些说明有效,每次我想更新时都会关注它们
但是,这次我尝试合并时得到这个:
warning: refname 'upstream/master' is ambiguous.
Already up-to-date
Run Code Online (Sandbox Code Playgroud)
并没有任何反应,即使我分叉的项目最近提交了.我真的不知道出了什么问题,我真的很沮丧.对不起,如果这个问题是令人难以置信的noobish和/或愚蠢.
编辑1:此外,我搜索了许多解决方案但没有成功.
编辑2: git branch -a的输出
* master
upstream/master
remotes/origin/HEAD -> origin/master
remotes/origin/log-upgrade
remotes/origin/master
remotes/origin/past-gens
remotes/origin/prototype-party
remotes/upstream/log-upgrade
remotes/upstream/master
remotes/upstream/past-gens
remotes/upstream/prototype-party
Run Code Online (Sandbox Code Playgroud)
编辑3:类似的问题
git refname'origin/master'是不明确的
Git:refname'master'是不明确的
警告:refname'HEAD'是不明确的
Git警告:refname'xxx'含糊不清
我想进行提交并将其复制到我的存储库中的其他位置.
现在的情况:
A--B--C--D (branch1)
\
E--F (branch2)
Run Code Online (Sandbox Code Playgroud)
期望的情况:
A--B--C--D--F'(branch1)
\
E--F (branch2)
Run Code Online (Sandbox Code Playgroud)
F保留在存储库中非常重要.我不想重写历史,因为F可能是公开的.
表示F和F'的存储库(源代码)的状态应该完全相同.是的,引入的C和D可能会丢失.
我不希望重播E和F在D的顶部我已经调查cherry-pick和rebase,但似乎他们删除原提交或干脆重播目标的顶部的变化.
在我写一些我在谷歌上找到的命令之前,git console 说
您的分支已更新为“origin/master”
当我输入git status.
因此,当我输入git push -u origin 01-MyfeatureProductListing在谷歌上找到的 ( ) 后,当我检查状态 (git status) 时,它现在显示:
您的分支已更新为“origin/01-MyfeatureProductListing”。
我怎样才能让它回到原来的方式?(你的分支是最新的“origin/master”),每次我输入“ git status ”
使用 Visual Studio 2017。