所以我们假设有三个开发人员:Alice,Bob和Cecil.他们决定在没有中央回购的情况下使用Git.他们都为彼此设置遥控器,以便:
remotes/bob/master remotes/cecil/master remotes/alice/master remotes/cecil/master remotes/alice/master remotes/bob/master 而现在,Alice希望她的本地主分支能够跟踪两个远程主分支.这在Git中甚至可能吗?如果没有,你们用什么工作流程解决这个问题?
git remote --v显示远程信息
origin https://github.com/test/testing-iOS.git (fetch)
origin https://github.com/test/testing-iOS.git (push)
Run Code Online (Sandbox Code Playgroud)
它表明fetch和push都使用相同的远程URL.
题:
什么时候(如果有的话)fetch和push的远程URL会有所不同?
您可以使用哪些命令来更改远程URL以便单独获取或推送?
我一直试图弄清楚这一点,但我很难这样做.我目前的工作,需要我允许用户一个开源项目推到远程仓库没有它已经存在那里.我想避免手动登录到服务器并运行git init或git init --bare.
出于显而易见的原因,我在尝试将本地存储库推送到不指向远程服务器上的现有存储库的路径时收到以下错误:
fatal: '/var/repositories/myrepo' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)
但我希望能够运行以下命令:
git push origin master
Run Code Online (Sandbox Code Playgroud)
而且有创造/myrepo的/var/repositories,如果它不存在.我怎么能做到这一点?我会假设它是某种(全局)git配置设置,你可能在远程服务器上设置,或者在本地设置(特定于存储库)git配置,但我无法弄明白.
任何帮助将非常感激!
谢谢!
我希望能够将我的Windows 7桌面上的工作仓库同步到我的Windows 7笔记本电脑,而无需将我的提交推送到我们的主服务器.我该怎么做呢?我无法弄清楚如何设置远程路径,以便git可以理解它的位置.我通常使用Git Bash来处理git,而不是windows命令行,所以这里的问题很可能是我无法弄清楚如何在Git Bash中编写一个引用windows共享的路径.
所以,说我有一个回购(Windows共享路径):
\\\\MyWorkPCName\dev\myrepo\
Run Code Online (Sandbox Code Playgroud)
在命令行中,我可以访问目录和文件(尽管使用pushd,因为cmd是愚蠢的),如何将其转换为有效的git远程?
我正在与开发团队一起使用EGit(用于Eclipse).我们为新工作创建了很多feature和fix分支,然后release在完成后将它们合并到我们的分支中.在它们合并到正确的release分支之后,通常会删除这些临时分支以保持远程仓库的清洁.
我注意到当这些分支被删除时,我将从我们的远程仓库中取出,但是EGit不会从我的远程跟踪视图中删除它们.我的远程跟踪视图仍将显示已删除的分支,这些分支不再位于远程仓库上(并且没有迹象表明它们已被删除).我的远程跟踪视图反映实际仓库的唯一方法(我发现)是手动删除所有远程跟踪分支(突出显示和删除),然后再次获取它们.这似乎非常迂回,特别是因为您可以通过命令行修剪远程分支,如下所示:
git remote prune origin
基本上,我想知道的是,如果有一种方法可以配置/使EGit在远程跟踪分支发生变化时执行此修剪(在我获取之后).这是我在origin遥控器上的当前提取配置:

我正在使用ubuntu 11.10机器.我安装了1.7.7.1版本的git.我正在使用git-cola推送和拉取我的代码,我能够提交并成功推送我的更改.
现在,我已经更换了我的机器,我的新系统具有相同的上述配置.(Ubuntu 11.10机器和git版本1.7.7.1).
在新机器上,我有关于git push的问题.我尝试推送代码时收到以下错误消息:
error: RPC failed; result=22, HTTP code = 401
fatal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)
在互联网上,我发现它可能是由于以下任何原因之一:
要使用以下命令增加缓冲区大小:
git config --system http.postBuffer 52428800
我试过这个,但没有运气.甚至试图增加我的缓冲区大小超过52428800,但仍然是同样的错误.
坚持这个问题.任何人都可以建议我一个解决方案.
谢谢.
我与一个使用git进行源代码管理的小团队合作.最近,我们一直在做主题分支以跟踪功能,然后将它们合并到本地主服务器,然后将它们推送到远程服务器上的中央git存储库.当master中没有进行任何更改时,这很有用:我创建我的主题分支,提交它,将其合并到master中,然后推送.万岁.
但是,如果有人在我之前推送到原点,我的提交并不是快进的.因此,合并提交随之而来.当主题分支需要在本地与master合并以确保我的更改与现在的代码一起使用时,也会发生这种情况.因此,我们最终到处都是合并提交,以及与友谊手镯相媲美的git日志.
因此,变基是显而易见的选择.我想要的是:
我目前的做法如下:
git checkout master
git rebase master topic_1
git rebase topic_1 topic_2
git checkout master
git rebase topic_2
git branch -d topic_1 topic_2
Run Code Online (Sandbox Code Playgroud)
有更快的方法吗?
我想看看我在本地哪些标签在特定遥控器上不可用.我怎样才能做到这一点?我知道我可以做到git push --tags推动所有这些.但是,如果有一些我不想推的标签,我该如何确保我没有错过一些呢?
我有一个包含许多分支的远程存储库.例如,我的存储库名称是:
http://navis.com/MyRepo.git
Run Code Online (Sandbox Code Playgroud)
它的分支是:
development
production (master)
testing
Run Code Online (Sandbox Code Playgroud)
我想将development分支合并到production(主)分支中.任何人都可以共享一个Git命令来合并两个远程分支吗?
我昨天在GitHub创建了我的第一个存储库.在建立连接时,我使用SSH而不是HTTPS,所以我经历了一个有点痛苦的SSH密钥创建和连接过程.在某些时候我卡住了,连接失败了.我当时想知道如何恢复我开始的过程并开始使用HTTPS连接.令人高兴的是,今天我通过SSH获得了连接,但我想知道能够改变连接类型(SSH与HTTPS)以及是否有办法实现它的价值.
git ×10
git-remote ×10
eclipse ×1
egit ×1
git-branch ×1
git-config ×1
git-push ×1
git-rebase ×1
git-tag ×1
github ×1
https ×1
merge ×1
share ×1
ssh ×1
windows ×1
windows-7 ×1