标签: git-remote

我怎样才能找出在远程机器上签出的分支?

我正在使用 Git 在我的笔记本和台式计算机之间同步工作目录:

  • origin两台机器上都有一个遥控器,origin它包含一个仓库
  • 在笔记本上,还有一个名为的附加遥控器desktop,其中包含一个带有工作副本的存储库
  • 在桌面上,还有一个名为的附加遥控器notebook,其中包含一个带有工作副本的存储库

当我在家工作时,我通过(慢速)VPN 连接将提交推送到origindesktop。有时,碰巧我在台式机上启动了一个分支,离开了我的工作场所,这个分支被检出并继续在笔记本上工作。到目前为止非常简单。

当我要将更改desktop从笔记本推送回机器时,事情会出现问题:当前分支当前已签出时,会出现Git 推送错误“[远程拒绝] master -> master(分支当前已签出)”问题在desktop

为了避免错误,我想提前知道当前在 上签出哪个分支desktop。有没有办法实现这一目标?


是的当然。我可以等到我回到工作岗位再推送,然后在桌面上查看不同的分支。我也可以在每次离开工作场所时创建一个临时分支。我可以打开一个到我的台式机的 RDP 会话并检查一个不同的分支。我知道。但这不是我要的:没有解决方法。

git git-push git-remote git-branch

3
推荐指数
1
解决办法
1295
查看次数

BitBucket - 如何从服务器检索所有存储库 URL

有没有办法从给定的 BitBucket 服务器检索所有远程 URL。

我们有很多应用程序正在从现有的 SCM 迁移到 BitBucket。我们的 BB 管理员正在 BitBucket 服务器上为我们创建存储库。

(ssh://git@ourserver.com:7999/sample/template-repo.git)然后,我们将通过访问 Web 界面获取类似于每个存储库的 ssh URL 。然后,我们选择要用于该运行的存储库,为该存储库选择克隆 -> ssh 协议并复制信息。然后,该 url 将在使用当前 SCM 应用程序中的文件填充存储库的过程中使用。

我查看了 ls-remote,但我认为这是出于不同的目的。

我想知道是否有任何命令行 git 命令可以一次性提供给定服务器的所有存储库 url 列表,我可以将其保存在文本文件中并在转换过程中使用它们。我对 git 很陌生,几周前才开始使用它。我还没有找到执行此操作的命令。

感谢任何有关如何做到这一点的帮助或任何可以指导我实现目标的资源。

git bitbucket command-line-interface git-remote

3
推荐指数
1
解决办法
6060
查看次数

我如何 git remote prune 只是一个特定的远程分支?

我的一个同事“重用”了一个分支名称,所以每次我拉时,我都会收到一条错误消息:

error: 'refs/remotes/origin/branch' exists; cannot create 'refs/remotes/origin/branch/subbranch'
...
error: some local refs could not be updated; try running 
 'git remote prune origin' to remove any old, conflicting branches
Run Code Online (Sandbox Code Playgroud)

问题是,我不想进行大规模的远程修剪 - 我很偏执,我想保留这些本地引用,以防其他同事以新的和有趣的方式搞砸。

有没有一种方法可以只修剪有问题的分支,而不必修剪所有其他分支,这些分支很高兴作为本地存储库中的远程引用?

git git-remote

3
推荐指数
1
解决办法
822
查看次数

推拉的不同默认遥控器

我可以设置它以便拉总是从上游拉,推总是推到原点,除非另有说明。

PS - 我不想要特定遥控器的不同推和拉(set-url),而是不同的默认遥控器。

编辑 - 在报告重复之前检查 Postscript。

git git-remote

3
推荐指数
1
解决办法
78
查看次数

在特定提交处获取 git repo,无需克隆

我正在尝试在不克隆的情况下获取特定提交哈希的 git 存储库!每个示例都想克隆整个存储库。这是有道理的,但我想要的存储库很大,我需要它留下一个小的足迹,因为它与 Docker 镜像一起使用。

提交哈希在 URL 中 - 或者wget可以curl/应该递归获取,但我有一种感觉 github 正在阻止它,因为我得到的只是robots.txt

回购和提交:

https://github.com/phalcon/cphalcon/tree/1d6d21c98026b5de79ba5e75a3930ce7d1ebcd2e

我最好的尝试错误:

git fetch https://github.com/phalcon/cphalcon/ 1d6d21c98026b5de79ba5e75a3930ce7d1ebcd2e
error: Server does not allow request for unadvertised object 1d6d21c98026b5de79ba5e75a3930ce7d1ebcd2e
Run Code Online (Sandbox Code Playgroud)

更新

使用克隆的答案建议并不能回答问题。我可以克隆/结帐没有问题。尝试在本地没有整个存储库的情况下执行此操作

git github git-fetch git-remote

3
推荐指数
1
解决办法
3203
查看次数

如何以编程方式检查本地副本是否在远程副本后面?

目前我正在获取最新的,然后运行git status并解析输出,Your branch is up to date with 'origin/master'但这感觉就像一个黑客。

我已经研究过使用,git status --porcelain但这仅包括在系统上所做的文件更改,而不是在远程所做的更改。我不在乎实际进行了哪些更改,我只想知道是否存在任何更改(本地或远程)。

我将如何干净地实现这一目标?

git parsing git-diff git-remote git-status

3
推荐指数
1
解决办法
823
查看次数

如何将本地存储库上的 URL 从 GitLab 更改为 GitHub?

我在 GitLab 上有一个存储库,我也在 GitHub 上发布了它。

到目前为止,我使用的所有 Git 命令都在 GitLab 上进行了更改。但是,我希望在 GitHub 上进行这些提交。

我试过命令:

git remote set-url origin git@github.com:repo-url
Run Code Online (Sandbox Code Playgroud)

有人可以建议我如何设置 URL 以便命令可以在 GitHub 而不是 GitLab 上运行吗?

git git-pull git-push git-fetch git-remote

3
推荐指数
1
解决办法
3778
查看次数

GIT:在根文件夹中使用 CRA 应用程序,如何正确推送到 git?

我对 git 很陌生。这可能是一个愚蠢的问题,但我真的不知道如何解决这个问题..我一直试图找到答案,但我无法......

我试图使用 React.js 和 Node.js 创建我的项目。我创建了从“npx create-react-app client”创建的 sever.js 和 client 文件夹。当我第一次推送到 git 时,我收到了这个错误消息。

 ! [rejected]        master -> master (fetch first)
error: failed to push some refs
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about …
Run Code Online (Sandbox Code Playgroud)

git github git-remote

3
推荐指数
1
解决办法
1391
查看次数

创建后跟踪分支?

这是我的场景(这是一个非常简单的场景):我在本地创建了一个分支,没有使用--track.我做了一些提交并按如下方式推送:

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

但是现在我不想origin test每次推动这个分支都要打字,所以我想让它跟踪origin/test(或者是相反的方式?).

我怎样才能做到这一点?我试过了:

git branch --set-upstream origin/test
Run Code Online (Sandbox Code Playgroud)

它不起作用.当我试图推动它说"一切都是最新的",它似乎创建了一个名为"origin/test"的实际分支,这不是我想要的.

更新:这里是.git/config(运行后--set-upstream)的内容:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
[remote "origin"]
    url = git@***.unfuddle.***/***.git
    fetch = +refs/heads/*:refs/remotes/unfuddle/*
    push = refs/heads/master:refs/heads/master
[gui]
    wmstate = normal
    geometry = 1098x644+298+187 207 207
[branch "test"]
    remote = origin
    merge = refs/heads/test
Run Code Online (Sandbox Code Playgroud)

git git-remote git-branch

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

Git功能分支工作流程

我正在努力为一个项目做贡献,我想在我的工作中使用git-flow工作流程(?).说,我已经检查了develop远程存储库(github)的分支,并且我已经设置了2个功能分支(T代表翻译,U代表更新):

---o---o---o (D)
           |---Ta---Tb (T)
           \---Ua---Ub---Uc (U)
Run Code Online (Sandbox Code Playgroud)

现在,对于每个分支,向upstream存储库维护者发出拉取请求,并且他接受所有这些请求并将它们合并到upstream/develop分支.

什么是正确的程序,以便我最终得到:

---o---o---Ta---Tb---Ua---Ub---Uc (D)
                               |- (T)
                               \- (U)
Run Code Online (Sandbox Code Playgroud)

有些东西告诉我这git rebase就是我需要的东西.(请注意我在Windows上).

git git-rebase git-remote git-branch

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