Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash脚本:Git fetch无法获取远程分支的最新更新_Bash_Git_Gitlab - Fatal编程技术网

Bash脚本:Git fetch无法获取远程分支的最新更新

Bash脚本:Git fetch无法获取远程分支的最新更新,bash,git,gitlab,Bash,Git,Gitlab,我正在编写一个用于git自动交互的bash脚本。问题是,一旦我运行带有更改的脚本,我就能够正确地推送,但在下一次运行时,git fetch不会显示我使用脚本所做的最新提交(在远程分支上) 我可以在我们的repo(gitlab)上看到我对脚本的更改提交,但是如果我在获取部分再次使用其他提交运行脚本,我看不到任何ref更新 branch HEAD -> FETCH_HEAD 如果我选中手动执行git fetch origin命令,它会正确更新引用,但git

我正在编写一个用于git自动交互的bash脚本。问题是,一旦我运行带有更改的脚本,我就能够正确地推送,但在下一次运行时,git fetch不会显示我使用脚本所做的最新提交(在远程分支上)

我可以在我们的repo(gitlab)上看到我对脚本的更改提交,但是如果我在获取部分再次使用其他提交运行脚本,我看不到任何ref更新

branch            HEAD       -> FETCH_HEAD
如果我选中手动执行
git fetch origin命令
,它会正确更新引用,但
git fetch${u gitUrl}
不会更新我的远程设备的引用。我之所以使用gitUrl,是因为我不需要uName和密码提示,我也不想在这里使用ssh

如何使用git fetch和https url可靠地更新远程引用?请帮忙

我的git推送是:
git推送${u gitUrl}“${u branchToPush}:${branchName}”

我的git fetch是:
git fetch--prune“${\u gitUrl}”

我还尝试了
git fetch“${\u gitUrl}”

我的gitUrl是:
https://uName:pwd@repo/project.git

My
git config——获取remote.origin.fetch
+refs/heads/*:refs/remotes/origin/*

获取后检查头:
git log origin/${branchName}

如何使用git fetch和https url可靠地更新远程引用

什么远程裁判?似乎您认为
git-fetch/pull/push“${\u-gitUrl}”
使
git
将URL与远程名称匹配?不,
git
不会这样做

一个原因是效率。为什么要花时间将URL映射到远程

另一个原因是明确无误。如果有多个远程设备具有相同的URL怎么办?Git允许这样做。在这种情况下,Git应该将URL映射到哪个远程Git


所以不,Git不会这么做。你自己给遥控器命名。

我找到了解决办法。由于git指出的指针没有将url映射到远程设备,这意味着在
git fetch${u gitUrl}
上不会更新我的远程设备(我假设origin/*)将被更新。 为此,我将远程名称(源)映射到url:

git remote set-url origin ${_gitUrl}
git fetch ${_gitUrl}

这是从url正确获取远程设备。我不知道这是否是最好的解决方案,因为现在密码是从url存储的,并且在
git config--list

Ohh上可见。那么,如果我想在没有提示的情况下使用httpsUrl执行fetch,我应该怎么做?@NiharGht Run
git fetch origin
,而不是
git fetch“${gitUrl}”
。或者编写将“${{gitUrl}”映射回远程名称的代码;一个比较URL的远程循环。我找到了一种方法,但我不知道这是否是最好的方法。我正在将url为
git remote set url${{u remoteName}${{u gitUrl}
的远程设置。这样做的一个缺点是我将密码存储在这里,但它似乎可以工作。强调一点,Git不能更新远程跟踪名称,除非涉及远程跟踪。(这有点夸张,但总体设计就是这样:使用远程,而不是URL,以获得远程概念带来的好处/功能。)@torek是的,我明白了,我正试图找出如何在我的场景中使用远程名称。