相关疑难解决方法(0)

如何将新的本地分支推送到远程Git存储库并跟踪它?

我希望能够做到以下几点:

  1. 基于其他(远程或本地)分支(通过git branchgit checkout -b)创建本地分支

  2. 将本地分支推送到远程存储库(发布),但使其可跟踪,git pullgit push立即工作.

我怎么做?

--set-upstream在Git 1.7中知道,但这是一个创作后的动作.我想找到一种方法,在将分支推送到远程存储库时进行类似的更改.

git repository git-push git-remote git-branch

4154
推荐指数
16
解决办法
323万
查看次数

你如何创建一个远程Git分支?

我创建了一个本地分支,我想在上游"推".Stack Overflow上有一个关于如何跟踪新创建的远程分支的类似问题.

但是,我的工作流程略有不同.首先,我想创建一个本地分支,当我满意并希望分享我的分支时,我只会将其推送到上游.

  • 我该怎么办?(我的谷歌搜索似乎没有提出任何东西).
  • 我如何告诉我的同事从上游存储库中取出它?

更新使用Git 2.0,我在下面写了一个更简单的答案:https://stackoverflow.com/a/27185855/109305

git branch git-branch

3030
推荐指数
18
解决办法
200万
查看次数

为什么我需要一直做`--set-upstream`?

我在Git中创建了一个新分支:

git branch my_branch
Run Code Online (Sandbox Code Playgroud)

推它:

git push origin my_branch
Run Code Online (Sandbox Code Playgroud)

现在说有人在服务器上做了一些更改,我想从中拉出来origin/my_branch.我做:

git pull
Run Code Online (Sandbox Code Playgroud)

但我得到:

You asked me to pull without telling me which branch you
want to merge with, and 'branch.my_branch.merge' in
your configuration file does not tell me, either. Please
specify which branch you want to use on the command line and
try again (e.g. 'git pull <repository> <refspec>').
See git-pull(1) for details.

If you often merge with the same branch, you may want to
use something like …
Run Code Online (Sandbox Code Playgroud)

git git-branch

1364
推荐指数
18
解决办法
93万
查看次数

如何更改远程分支正在跟踪?

central库必须建立一个新的服务器上,所以我创建了我的本地回购新的远程,并推到这一点.

但现在,当我这样做时git pull,它声称我是最新的.这是错的 - 它告诉我关于旧的远程分支,而不是新的远程分支,我知道事实上有新的提交提取.

如何更改本地分支以跟踪不同的遥控器?

我可以在git配置文件中看到这个,但我不想搞砸了.

[branch "master"]
    remote = oldserver
    merge = refs/heads/master
Run Code Online (Sandbox Code Playgroud)

git

608
推荐指数
8
解决办法
37万
查看次数

Git - 推送当前分支快捷方式

是否有快捷方式告诉Git将当前跟踪分支推送到原点?
注意:我知道我可以更改默认的推送行为,但我正在寻找一种不会改变默认行为的临时解决方案.

例如,假设我在feature/123-sandbox-tests我将使用的分支上

git push origin feature/123-sandbox-tests
Run Code Online (Sandbox Code Playgroud)

这很乏味.我正在寻找一条捷径,比如说

git push origin current
Run Code Online (Sandbox Code Playgroud)

git知道当前是什么feature/123-sandbox-tests.


编辑:从版本2.0开始,git的默认行为已更改为更直观的行为,这是我想要实现的.有关详细信息, 请参阅此SO问题

编辑2:ceztko的答案是最佳答案,因为它允许推送当前分支,无论设置如何.

git

318
推荐指数
7
解决办法
13万
查看次数

"你"究竟做了什么?"git push -u origin master"vs"git push origin master"

尽管我最好去理解它,但我使用git显然很糟糕.

kernel.orggit push:

-u

--set上游

对于每个最新或成功推送的分支,添加上游(跟踪)引用,由无参数git-pull(1)和其他命令使用.有关更多信息,请参阅branch.<name>.mergegit-config(1).

这是branch.<name>.merge来自git config:

branch.<name>.merge

定义与branch.<name>.remote给定分支的上游分支一起.它告诉git fetch/git pull合并哪个分支,也可以影响git push(参见push.default).在分支中<name>,它告诉git fetch默认的refspec被标记为在FETCH_HEAD中合并.该值的处理类似于refspec的远程部分,并且必须匹配从给定的远程提取的ref "branch.<name>.remote".git pull(首先调用git fetch)使用合并信息来查找默认分支以进行合并.如果没有此选项,git pull默认合并第一个引用的refspec.指定多个值以获得章鱼合并.如果你想设置git pull以便它<name>从本地存储库中的另一个分支合并,你可以指向branch.<name>.merge所需的分支,并使用特殊设置.(期间)branch.<name>.remote.

我成功地使用github建立了一个远程存储库,并且我成功地将我的第一次提交推送到了:

git push -u origin master
Run Code Online (Sandbox Code Playgroud)

然后,我在不知不觉中成功地将我的第二次提交推送到我的远程存储库:

git commit -m '[...]'
Run Code Online (Sandbox Code Playgroud)

然而,错误地以为我将不得不再次推到originmaster,我跑:

# note: no -u
git push origin master
Run Code Online (Sandbox Code Playgroud)

那是做什么的?它似乎没有任何影响.我"撤消"了git push -u origin master吗?

git

298
推荐指数
3
解决办法
15万
查看次数

更改Git遥控器'推送到'默认值

我想更改Git默认远程分支目的地,所以我可以

git push
Run Code Online (Sandbox Code Playgroud)

代替:

git push upstream
Run Code Online (Sandbox Code Playgroud)

目前这被设置为原始远程,我想将其设置为不同的远程.

我试图删除原始(克隆自)遥控器

git remote rm origin
Run Code Online (Sandbox Code Playgroud)

哪个确实删除了原来的遥控器.但并没有解决git push问题.我还是得到:

致命:没有配置推送目的地.
从命令行指定URL 或使用...配置远程存储库

我也试过玩:

git remote set-url --push myfork origin
Run Code Online (Sandbox Code Playgroud)

和其他选项,但似乎没有工作(也许是因为我太快删除了原点遥控器?)

这里答案后,我试图改变:

git config push.default upstream (or matching)
Run Code Online (Sandbox Code Playgroud)

但都没有奏效.

git git-push git-remote

201
推荐指数
11
解决办法
11万
查看次数

git checkout --track origin/branch和git checkout -b branch origin/branch之间的区别

有人知道切换和跟踪远程分支这两个命令之间的区别吗?

git checkout -b branch origin/branch
git checkout --track origin/branch
Run Code Online (Sandbox Code Playgroud)

我认为两者都跟踪远程分支,所以我可以将我的更改推送到原点上的分支,对吧?

有什么实际差异吗?

谢谢!

git branch git-checkout git-branch

196
推荐指数
3
解决办法
13万
查看次数

跟踪在GitHub上创建的新远程分支

我已经有一个本地主分支跟踪github项目的远程主分支.现在,我的一个合作者在同一个项目中创建了一个新分支,我想相应地做以下事情:

  1. 在本地创建一个新分支
  2. 使这个新分支跟踪新创建的远程分支.

我该怎么做呢?

git github git-branch

173
推荐指数
4
解决办法
13万
查看次数

为什么要调用git branch --unset-upstream来修复?

在git中进行高级操作时,我更像是一个新手.我使用博客框架Octopress维护我的博客.虽然Octopress自2011年以来没有任何发展,但它很好地实现了我的目的,所以到目前为止我还没想过要改变任何东西.

仅供参考,我的博客是在Github Pages上托管的.

今天,在处理新帖子时,git status显示以下消息:

On branch source
Your branch is based on 'origin/master', but the upstream is gone.
  (use "git branch --unset-upstream" to fixup)
Run Code Online (Sandbox Code Playgroud)

对所有后续命令重复相同的消息,例如git add .,git commit -m 'message'git push origin source.

  • 消息是什么意思?
  • 有什么东西坏了?
  • 如果有,那是什么?
  • 我需要修理它吗?

如果可能的话,请指向我的pdf/web文章,在那里我可以阅读并了解它以备将来使用.

更多细节:

bash-3.2$ git branch -a
* source
  remotes/octopress/2.1
  remotes/octopress/HEAD -> octopress/master
  remotes/octopress/gh-pages
  remotes/octopress/linklog
  remotes/octopress/master
  remotes/octopress/refactor_with_tests
  remotes/octopress/rubygemcli
  remotes/octopress/site
  remotes/origin/source
Run Code Online (Sandbox Code Playgroud)

如果需要更多信息,请告诉我.谢谢.

git git-branch github-pages

140
推荐指数
4
解决办法
12万
查看次数