相关疑难解决方法(0)

在不使用签出的情况下合并,更新和拉取Git分支

我在一个有两个分支A和B的项目上工作.我通常在分支A上工作,并从分支B合并东西.对于合并,我通常会这样做:

git merge origin/branchB
Run Code Online (Sandbox Code Playgroud)

但是,我还想保留分支B的本地副本,因为我可能偶尔会检查分支而不先与我的分支A合并.为此,我会这样做:

git checkout branchB
git pull
git checkout branchA
Run Code Online (Sandbox Code Playgroud)

有没有办法在一个命令中执行上述操作,而无需来回切换分支?我应该用git update-ref它吗?怎么样?

git git-pull git-merge git-checkout

585
推荐指数
10
解决办法
14万
查看次数

可以"git pull --all"更新我所有的本地分支机构吗?

我经常至少有3个远程分支:master,staging和production.我有3个本地分支跟踪那些远程分支.

更新我所有的本地分支机构很繁琐:

git fetch --all
git rebase origin/master
git checkout staging
git rebase origin/staging
git checkout production
git rebase origin/production
Run Code Online (Sandbox Code Playgroud)

我很乐意能够做一个"git pull -all",但我无法让它发挥作用.它似乎执行"fetch --all",然后更新(快进或合并)当前工作分支,而不是其他本地分支.

我仍然卡在手动切换到每个本地分支和更新.

git

439
推荐指数
12
解决办法
25万
查看次数

跟踪所有远程git分支作为本地分支

将单个远程分支作为本地分支进行跟踪非常简单.

$ git checkout --track -b ${branch_name} origin/${branch_name}
Run Code Online (Sandbox Code Playgroud)

将所有本地分支推送到远程,根据需要创建新的远程分支也很容易.

$ git push --all origin
Run Code Online (Sandbox Code Playgroud)

我想反过来.如果我在一个源上有X个远程分支:

$ git branch -r 
branch1
branch2
branch3
.
.
.
Run Code Online (Sandbox Code Playgroud)

我是否可以为所有远程分支创建本地跟踪分支,而无需手动创建每个分支?说出类似的话:

$ git checkout --track -b --all origin
Run Code Online (Sandbox Code Playgroud)

我用google搜索和RTM,但到目前为止已经上传了.

git branch

160
推荐指数
8
解决办法
7万
查看次数

如何在git中快进其他跟踪分支?

我们正在使用我们所有人都使用的单个远程存储库的模型.我们分支新功能并重新集成到主干分支.我们的工作流程是,当其他功能集成到主干中时,我们应该从主干集成到我们的工作分支.

因此,我们做的事情并不少见:

(branch) $ git commit -a -m"blah blah blah"
(branch) $ git fetch  # origin/trunk is updated
(branch) $ git checkout trunk
(trunk) $ git pull  # trunk is fast-forwarded to current version of origin/trunk.
(trunk) $ git checkout branch
(branch) $ git merge trunk
(branch) $ git push
Run Code Online (Sandbox Code Playgroud)

我不喜欢"git checkout trunk/git pull/git checkout branch"循环.它通常与Visual Studio合并,抱怨我的所有文件和项目都在磁盘上发生了变化,并且应该重新加载它们.两个结帐.而拉.合并.合并是不可避免的,但由于git如何工作,它应该能够在主干上进行快进,而不需要检查它.

但我不知道这个命令,而我的google-foo在这方面让我失望了.谁知道怎么样?

git

28
推荐指数
3
解决办法
8162
查看次数

我无法继续使用git?

git push origin master 显示错误

未能推送一些引用' git@github.com:xyz/abc.git' 为了防止您丢失历史记录,拒绝非快进更新在再次推送之前合并远程更改.有关详细信息,请参阅"有关快进的注意事项"部分git push --help.

这是什么?如何恢复?

git github git-svn

14
推荐指数
2
解决办法
4万
查看次数

使用git同步所有分支

我从两个主要位置推送代码:我家里的电脑和工作中的笔记本电脑.我使用Github来存储我的回购.

这是一个场景:我在我的PC上做了一些工作,我已经工作了一段时间(在我的电脑和我的笔记本电脑中),并以下列分支结束:

$ git branch
* master
* v123
* test-b
Run Code Online (Sandbox Code Playgroud)

我把它推到了Github.到现在为止还挺好.

现在我在我的笔记本电脑上,这是我在尝试拉动任何东西之前看到的:

$ git branch
* master
* v_123
Run Code Online (Sandbox Code Playgroud)

这是我的笔记本电脑中的旧版本(因为我一直在我的电脑上工作),其中存在以下差异:缺少分支(test-b),另一个已重新命名,或等效删除并重新创建一个新名称(即:v_123现在是v123),并且许多事情可能在所有分支中都发生了变化.

我想将我的所有分支同步到我的笔记本电脑中并正确跟踪它们.我已经看了两个最先进的投票问题,关于分支克隆/取回(如何克隆所有远程分支机构Git中?,如何获取所有的Git分支)和现在我有点失落.

是否有一些易于使用的git sync-branch --all命令可用于将我的笔记本电脑与Github中最新的repo状态同步?

git branch sync github

4
推荐指数
3
解决办法
2万
查看次数

标签 统计

git ×6

branch ×2

github ×2

git-checkout ×1

git-merge ×1

git-pull ×1

git-svn ×1

sync ×1