git push origin 的 TFS 远程消息

Posted

技术标签:

【中文标题】git push origin 的 TFS 远程消息【英文标题】:TFS remote messages for git push origin 【发布时间】:2021-09-09 00:53:07 【问题描述】:

TL;DR:我正在寻找一种获取 TFS git repo 的方法,以提供有关如何在 git push origin 之后创建拉取请求的说明。如果 TFS 2018 支持,我认为最好的解决方案是服务器端挂钩。


我知道,如果我 git push origin new_branch 到 github 存储库,我会得到如下响应:

git push -u origin new_branch
Enumerating objects: 2, done.
Counting objects: 100% (2/2), done.
Writing objects: 100% (2/2), 500 bytes | 500.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
Remote: Create a pull request for ‘new_branch’ on GitHub by visiting:
Remote:   http://github.com/example/Demo/pull/new/new_branch
Remote:
 * [new branch]         new_branch -> new_branch

(注意以“Remote:”开头的三行)

我正在将一些代码迁移到由 Microsoft TFS 的本地实例托管的 git 存储库。目前,当我向 TFS 存储库运行 git push origin new_branch 时,我得到如下信息:

Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Delta compression using up to 8 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 217 bytes | 1024 bytes/s, done.
Total 2 (delta 1), reused 0 (delta 0)
remote: Analyzing objects... (2/2) (53 ms)
remote: Storing packfile... done (47 ms)
remote: Storing index... done (45 ms)
To https://tfsserver.jallc.lan/DefaultCollection/TSG/_git/reponame
c4512bd..80227e1  branchname -> branchname

这个 git repo 和几个类似的项目将被一群不熟悉源代码控制的系统管理员使用,所以我很想找到一种方法来提醒他们如何提交拉取请求。

我相信以“Remote:”开头的三个 github 行来自一个“post-receive hook”,它由 /.git/hooks 中的 post-receive 文件运行。

我已经让这个(客户端)预推送脚本工作了:

echo "hi" 
echo "Don't forget to generate a pull request.  You can do so by navigating to:"
echo "$2/pullrequestcreate?targetRef=master&sourceRef=<your branch> and following the prompts."

但是在我的客户端上修改 post-receive 和 update 脚本没有任何效果。我假设它们需要在服务器上进行修改,但不知道在 TFS 服务器上的哪里可以找到 repo 的 .git/hooks 文件夹。无论如何,客户端总比没有好。

任何关于如何让接收后脚本在 TFS 服务器上触发的想法都将不胜感激。

非常感谢!

【问题讨论】:

仅供参考,TFS 将 git 存储库存储在其 Sqlserver 数据库中。据我所知,它不支持服务器端挂钩。所以,从那里没有帮助。我不认为你试图达到的目标值得付出努力。做 PR 很容易,记住 2 或 3 次后,他们就会习惯。 【参考方案1】:

TFS 2018 不支持 git 服务器端挂钩。

所以你的好主意是不可能的。

我建议open a feature request 就像有关于pre-receive hook. 一样

【讨论】:

以上是关于git push origin 的 TFS 远程消息的主要内容,如果未能解决你的问题,请参考以下文章

GitGit 分支管理 ( 删除远程分支 | 查看远程分支 git branch -a | 删除远程分支 git push origin --delete feature1 )

git 提交远程分支 老是提示 git push origin HEAD 问题

$ git push -u origin master

'git push origin master'中'origin'是什么意思

git push -u origin master的实际原理

Git 里面的 origin 理解