我有一个脚本,如果我忘记在我的40多个存储库中提交或推送一些代码,我会通过电子邮件向我发送提醒。
在我的两个项目中,我已经按照这些帖子中的答案进行了操作,我已经设置了“git-push”以推送到多个存储库:
所以我有一个.git / config文件:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[branch "master"]
remote = origin
merge = refs/heads/master
[remote "origin"]
url = https://www.example.com/git/project/
url = git@github.com:username/project.git
[remote "example"]
url = https://www.example.com/git/project/
fetch = +refs/heads/*:refs/remotes/example/*
[remote "github"]
url = git@github.com:username/project.git
fetch = +refs/heads/*:refs/remotes/github/*
在进行git推/拉时,这很有效。
使用我使用过的脚本:
git status --short
但这仅显示未提交的更改...即使没有“--short”标志,它也不显示通常仅显示1个遥控器的内容:
Your branch is ahead of 'origin/master' by 1 commit.
尝试运行以下任何“diff”命令似乎也不起作用......它是第一次执行,但它似乎记住了设置日期/时间的远程文件,因此,当您进行更多更改时,会将它们与历史记录中的该版本进行比较:
git diff --name-status "origin";
git diff --name-status "origin/master";
git diff --name-status "example/master";
git diff --name-status "github/master";
有什么想法?我是Git的新手。
答案 0 :(得分:0)
我相信这个方法可能有点儿麻烦,因为它似乎记得每个遥控器的提交参考,但是当进行推/拉时这不会得到更新...所以当通过差异检查时,它总是会去查看旧的commit ref以进行比较。
虽然它不是这个设置的解决方案,但我已经回到单个远程设置,但编辑它以便它有2个网址...所以虽然拉动只发生在一个遥控器上,当我推动时,它会去到两点:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[branch "master"]
remote = origin
merge = refs/heads/master
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = https://www.example.com/git/project/
url = git@github.com:username/project.git
注意:这只适用于现在,因为我是唯一的提交者。