相关疑难解决方法(0)

轻松获取最新的git子模块

我们使用git子模块来管理一些依赖于我们开发的许多其他库的大型项目.每个库都是作为子模块引入依赖项目的单独repo.在开发过程中,我们经常想要抓住每个依赖子模块的最新版本.

git有内置命令来执行此操作吗?如果没有,Windows批处理文件或类似文件怎么样呢?

git git-submodules

1748
推荐指数
18
解决办法
95万
查看次数

如何获取文件的完整路径?

有没有一种简单的方法可以打印完整的路径file.txt

file.txt = /nfs/an/disks/jj/home/dir/file.txt
Run Code Online (Sandbox Code Playgroud)

<command>

dir> <command> file.txt  
Run Code Online (Sandbox Code Playgroud)

应该打印

/nfs/an/disks/jj/home/dir/file.txt
Run Code Online (Sandbox Code Playgroud)

unix linux file path

669
推荐指数
9
解决办法
86万
查看次数

git pull而不在git目录中

假设我有一个目录/X/Y,这是一个git存储库.有可能以某种方式git pull从内部调用命令/X,但目标是该/X/Y目录?

编辑:我想我特别想知道:是否可以使用git命令执行此操作,但无需更改目录?

注意:我接受了VonC的答案,因为它比以前的选项更优雅.对于运行Git低于1.8.5的人,请参阅下面的bstpierre的答案.

git

292
推荐指数
6
解决办法
12万
查看次数

git子模块更新

我不清楚以下是什么意思(来自git submodule update docs):

...将使子模块HEAD分离,除非--rebase--merge指定...

怎么--rebase/ --merge改变事情?

我的主要用例是有一堆中央存储库,我将通过子模块嵌入到其他存储库中.我希望能够改进这些中央回购,直接在他们的原始位置,或从他们的嵌入回购(通过子模块使用它们的那些).

  • 从这些子模块中,我可以创建分支/修改并使用推/拉,就像我在常规回购中一样,或者有什么需要谨慎的吗?
  • 我如何将子模块引用的提交从say(tagged)1.0提升到1.1(即使原始repo的头部已经是2.0),或者选择使用哪个分支的提交?

git git-submodules

233
推荐指数
4
解决办法
23万
查看次数

管理许多git存储库

在git中设置项目很简单,所以即使是小脚本我也可以拥有单独的存储库.现在的问题是如何管理它们.

我使用这些存储库在多个地方工作.当我对某个存储库进行了更改后,我希望能够在其他位置更新存储库.

所以我有一个包含许多存储库的目录.

  1. 我怎样才能取出所有这些?
  2. 如何检查是否有任何未提交的更改?
  3. 如何检查是否有任何更改要合并?

能够用一个命令完成这些操作会很高兴.

输出需要足够沉默才能真正注意到要做的事情.

git multiple-repositories

72
推荐指数
10
解决办法
3万
查看次数

如何使用git clone --recursive加速/并行化git子模块的下载?

克隆具有大量子模块的git存储库需要很长时间.在以下示例中是~100个子模块

git clone --recursive https://github.com/Whonix/Whonix
Run Code Online (Sandbox Code Playgroud)

Git一个接一个地克隆它们.比需要的时间长得多.让(可能)假设客户端和服务器都有足够的资源同时回答多个(并行)请求.

如何使用git clone --recursive?加速/并行化git子模块的下载?

git performance download git-clone git-submodules

16
推荐指数
2
解决办法
6267
查看次数

有没有办法在终端列出git存储库?

我的系统上有几个git存储库,我想在终端列出所有这些存储库.

我正在寻找的是这样的:

/ path/to/my/git/repo/1/REPONAME1
/ path/to/my/git/repo/2/REPONAME2
/ path/to/my/git/repo/3/REPONAME3

如果你能想出如何显示分支名称和回购的状态,例如.[大师] c:0你:1 d:0,那会很棒.

git terminal

12
推荐指数
3
解决办法
2万
查看次数

更新文件夹中的所有存储库?

我有一个文件夹 - 'Repos' - 它包含我感兴趣的回购.这些已经从bitbucket克隆,但我想github也可能是一个来源.

Repos
    - music-app
    - elephant-site
    - node-demo
Run Code Online (Sandbox Code Playgroud)

是否有一个git命令,我可以使用哪些步骤通过Repos中的每个文件夹,看看服务器上是否有新的提交,并下载新的东西?如果本地有新的提交,那么上传这些.

git github bitbucket

11
推荐指数
4
解决办法
8624
查看次数

在 git pull 上父存储库后合并子模块更改

如何使用单个命令获取和合并主存储库并对所有子模块执行相同操作?

我有一个包含子模块B的存储库A。子模块B经常更新,更改并不总是最新的。

我可以通过执行以下操作来更新和合并新更改

cd A/B    <-- enter submodule directory
git pull  <-- run pull to fetch and !!merge!! submodule changes
Run Code Online (Sandbox Code Playgroud)

我想要做的是运行单个命令来 pull&merge 主存储库,并对所有子模块执行相同的操作。

cd A                           <-- Now enter to parent directory
git pull --recurse-submodules  <-- Fetch&merge changes on main repository
                               <-- and pull changes on all submodules 
Run Code Online (Sandbox Code Playgroud)

实际发生的是:

  1. 获取并合并存储库A上的更改=> OK
  2. 子模块存储库B上的更改仅获取而不合并 => NOK

目前的解决方案是:

cd A
git pull --recurse-submodules
cd B
git merge   <-- Now merge fetched changes …
Run Code Online (Sandbox Code Playgroud)

git git-pull git-merge git-submodules

6
推荐指数
0
解决办法
897
查看次数

运行 hg pull 覆盖所有子目录

如何从共享父目录更新多个 Mercurial (hg) 存储库?

/plugins/search
/plugins/overview
/plugins/chart
Run Code Online (Sandbox Code Playgroud)

我想将一个分支更改为默认分支并立即更新它们

cd /plugins/search
hg update -C default
hg pull -u
Run Code Online (Sandbox Code Playgroud)

ubuntu mercurial multiple-repositories

5
推荐指数
1
解决办法
1555
查看次数