我有一个文件夹- 'Repos' -其中包含我感兴趣的repos。这些都是从bitbucket克隆的,但我想github也可以是一个来源。
Repos - music-app - elephant-site - node-demo
有没有一个git命令,我可以使用它来遍历Repos中的每个文件夹,看看服务器上是否有新的提交,并下载新的东西?如果本地有新的提交,那么上传这些。
yvfmudvl1#
试试这个:
cd repos find . -maxdepth 1 -type d -exec sh -c '(cd {} && git pull)' ';'
bvpmtnay2#
对于Windows,我在下面使用。cmd文件。它可以很容易地被扩展来做更多的事情或其他事情:
for /d %%i in (*) do ( pushd "%%i" git pull popd )
nxowjjhe3#
对于Windows,这应该通过命令提示符为您完成:
cd c:\repos for /d %a in (*.*) do cd c:\repos\%a && git pull
一旦你回到GitHub客户端,你应该会看到更新。
chhkpiq44#
使用PowerShell,你可以这样做:
Get-ChildItem -Recurse -Depth 2 -Force | Where-Object { $_.Mode -match "h" -and $_.FullName -like "*\.git" } | ForEach-Object { cd $_.FullName cd ../ git pull cd ../ }
这将进入每个目录并查找.git文件夹,然后在每个文件夹中运行git pull。
.git
git pull
chhqkbe15#
gitfox是一个在所有subrepo上执行命令的工具npm install gitfox -gg拉力
cunj1qz16#
要维护多个仓库,可以使用git submodule。使用git submodule add将repo添加为子模块,并使用git submodule foreach git pull更新repo。这种方法就像你有一个超级项目,里面有几个git项目。
git submodule add
git submodule foreach git pull
wmtdaxz37#
我有一个scriptlet,它可以做如下事情:
for d in * cd $d git pull cd ..
(Yes,它有一些额外的花里胡哨的东西,因为我有一些hg仓库,其他的我在git中从SVN上游管理。)
hg
rryofs0p8#
find . -type d -depth 1 -exec git --git-dir={}/.git --work-tree=$PWD/{} pull origin \;
Leo
4ngedf3f9#
我在给定的答案中没有看到任何修复方法,但这是一种修改所选答案的好方法,以避免拉上“。/”repo还将在find上设置mindepth值。下面的表达式解决了OP问题,同时还删除了所选答案遇到的错误:
cd repos find . -mindepth 1 -maxdepth 1 -type d -exec sh -c '(cd {} && git pull)' ';'
这适用于大多数 *nix系统,应该也适用于mac。
9条答案
按热度按时间yvfmudvl1#
试试这个:
bvpmtnay2#
对于Windows,我在下面使用。cmd文件。它可以很容易地被扩展来做更多的事情或其他事情:
nxowjjhe3#
对于Windows,这应该通过命令提示符为您完成:
一旦你回到GitHub客户端,你应该会看到更新。
chhkpiq44#
使用PowerShell,你可以这样做:
这将进入每个目录并查找
.git
文件夹,然后在每个文件夹中运行git pull
。chhqkbe15#
gitfox是一个在所有subrepo上执行命令的工具
npm install gitfox -g
g拉力
cunj1qz16#
要维护多个仓库,可以使用git submodule。
使用
git submodule add
将repo添加为子模块,并使用git submodule foreach git pull
更新repo。这种方法就像你有一个超级项目,里面有几个git项目。
wmtdaxz37#
我有一个scriptlet,它可以做如下事情:
(Yes,它有一些额外的花里胡哨的东西,因为我有一些
hg
仓库,其他的我在git中从SVN上游管理。)rryofs0p8#
1.然后运行以下命令
Leo
4ngedf3f9#
我在给定的答案中没有看到任何修复方法,但这是一种修改所选答案的好方法,以避免拉上“。/”repo还将在find上设置mindepth值。下面的表达式解决了OP问题,同时还删除了所选答案遇到的错误:
这适用于大多数 *nix系统,应该也适用于mac。