相关疑难解决方法(0)

从多个远程位置拉/推

简短:有没有办法让git repo推送到远程回购列表(而不是单个"来源")?

长:当我在多台计算机上开发一个应用程序时,我经常遇到这种情况,它有不同的连接 - 比如在运输途中是笔记本电脑,在我在某个位置时是电脑"A",另一台是"B"在另一个.此外,笔记本电脑可能只与"A"或"B"连接,有时两者兼而有之.

我想要的是让git始终"拉"并"推"到它当前可以连接的所有计算机上,这样就可以更轻松地从一台机器跳到另一台机器并继续无缝工作.

git

713
推荐指数
10
解决办法
31万
查看次数

将本地Git仓库推送到新的远程包括所有分支和标签

我有一个本地Git仓库,我想推送到一个新的远程仓库(在Beanstalk上设置全新的仓库,如果这很重要).我的本地仓库有一些分支和标签,我想保留我的所有历史记录.看起来我基本上只需要执行git push,但只上传master分支.如何推送所有内容,以便在遥控器上获得我当地仓库的完整副本?

git

506
推荐指数
12
解决办法
17万
查看次数

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万
查看次数

git标签也被推送了吗?

自从我创建了我的存储库后,看来我创建的标签没有被推送到存储库.当我git tag在本地目录上执行所有标记时,但是当我登录到远程存储库并执行操作时git tag,只显示前几个标记.

问题是什么?

git git-tag

176
推荐指数
5
解决办法
6万
查看次数

如何查看远程标签?

在Atlassian SourceTree中,如何知道哪些标签只是本地标签,哪些标签也是远程标签?

创建标签时,您可以选择"将标签推送到:...",但如何在创建标签后知道标签是否已被推送?我可以在本地看到我的所有标签,但我需要确保它们存在于远程中,以便其他开发人员可以将它们拉出来.

git atlassian-sourcetree

109
推荐指数
2
解决办法
7万
查看次数

如何将标签同步到分叉的 github 存储库?

我在 github 上分叉了一个存储库,并使用网页上的“获取并合并”按钮将最新代码同步到我的分叉。我注意到代码已更新,但主复制中的新标签最终不会出现在我的分叉中。我怎样才能做到这一点?

github

43
推荐指数
1
解决办法
1万
查看次数

如何制作"git push"包括分支内的标签?

获取单个分支时,git fetch包括指向分支的任何标记:

当refspec将获取的结果存储在远程跟踪分支中时,将自动跟踪指向这些分支的标记.这是通过首先使用给定的s从远程获取来完成的,如果存储库具有由远程标记指向的对象,那么它将获取那些缺少的标记.如果另一端有标签指向你不感兴趣的分支,你就不会得到它们.

有没有办法让git push行为方式相同?手册页说明了如何--tags在命令行中不使用任何标签(默认值),所有标签()或名称.它没有提供一种方法来推动指向分支的所有指针.

git

33
推荐指数
1
解决办法
2万
查看次数

"git push"和"git push --tags"在同一个命令中?

我经常跑:

git push
git tag v4.7
git push --tags
Run Code Online (Sandbox Code Playgroud)

第一个和第三个操作都连接到服务器,这浪费了时间.
我想通过只推一次来加快速度.什么命令会实现这个目标?
它是一个bash 脚本,需要在任何分支中运行良好,而不仅仅是master.

阅读手册,我认为不是git push all解决方案:

--all:不是命名每个引用推送,而是指定refs/heads /下的所有引用都被推送.

--tags:除了在命令行中明确列出的refspec之外,还会推送refs/tags下的所有引用.

git git-push git-tag

22
推荐指数
2
解决办法
1万
查看次数

在完成时从 Azure Devops Build Pipeline 设置 Git 标签

我正在尝试使用由 GitVersion 在成功构建结束时的 GIT 提交确定的当前版本号设置标签。感觉我不能成为第一个这样做的人,但我正在努力寻找有用的东西。

Azure Devops Pipeline 在成功时获取源以“标记源”中有一项功能。我已经设置了它并设置为由我拥有的代理任务之一设置的变量(GitVersion)

标签来源

我可以在调试日志中看到这个变量是由我添加到管道的 GitVersion 组件设置的。

2019-12-06T20:54:20.2390794Z ##[debug]Processed: ##vso[task.setvariable variable=GitVersion.MajorMinorPatch;]2.98.0
Run Code Online (Sandbox Code Playgroud)

但是,如果我就这样保留它,我会得到一个创建为“v$(GitVersion.MajorMinorPatch)”的标记,这意味着在创建标记时该变量不再存在。

标签格式帮助工具提示说

“标签格式可以是用户定义或预定义变量的组合,其范围为“全部”。例如:'$(Build.DefinitionName) $(Build.DefinitionVersion) $(Build.BuildId) $(Build .BuildNumber) $(My.Variable)'"

所以我猜问题是在管道期间创建的这个变量没有 All 的范围。

然后我尝试向“GitVersion.MajorMinorPatch”的管道添加一个管道变量,希望这是在正确的范围内,并希望当“task.setvariable”命令运行时,这会将这个变量值设置得更高范围变量。

在此处输入图片说明

但是在这种情况下,我只是创建了一个标签“v”。

所以我有点卡住了。不知何故,我需要能够在范围 ALL 上动态创建或设置一个变量,并使用我想在此处标记的值。

我真的很感激对此的任何想法。

gitversion azure-devops azure-pipelines

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

如果第二次推送只有第一次推送的快进,那么并发git推送是否总是安全的?

我想自动将后接收挂钩中的提交从我们LAN上的中央仓库推送到云中的另一个中央仓库.LAN repo使用git clone --mirror git@cloud:/path/to/repo或等效命令创建.

因为提交的文件相对于我们的上游带宽会很大,所以完全有可能发生这样的事情:

  1. Alice启动了对LAN repo的推送.
  2. 在收件后挂钩运行时,Bill从LAN repo中拉出来.
    • 局域网回购正在推动云回购.
    • 这也意味着Bill的本地仓库包含Alice推送的提交.通过测试确认.
  3. 比尔开始推动局域网回购.
    • 比尔的推动是爱丽丝推进的快速前进,因此局域网回购将接受它.

当LAN repo的后接收挂钩执行时,将从LAN repo到cloud repo的第二次推送开始,并且两者将同时运行.

我并不担心git对象.最糟糕的情况是两个推送都会从Alice的推送中上传所有对象,但就我理解git的内部结构而言,这应该无关紧要.

我很担心裁判.假设Alice推动使用更慢的连接,因此Bill的推送首先完成.假设数据包丢失或其他原因导致挂钩从局域网仓库推送到Bill的推送云完成,然后钩子从局域网回购推送到Alice的推送云.如果Alice和Bill都在推动主分支并且Bill的推送首先完成,那么主要参与者将在云回购中做什么?我希望它成为比尔的头,因为那是后来的推动,但我担心这将是爱丽丝的头.

进一步澄清:

我意识到,如果比尔从他的机器推送到局域网回购完成,那么爱丽丝从她的机器到局域网回购的推动将会失败.在这种情况下,LAN repo的post-receive挂钩将不会执行.此外,请假设没有人会进行强制推送,因此如果后续接收挂钩在LAN repo上运行,则所有参考更改都是快进的.

git backup concurrency automated-tests git-post-receive

11
推荐指数
1
解决办法
1864
查看次数