git在什么时候完成执行操作



Go中有一个实用程序,它通过os/exec运行提交签出,然后对提交中的文件执行一些操作。

我怀疑目前这个命令返回的返回代码是:

_, err := exec.Command("git", "-C", sourceDir, "checkout", hash).Output()

文件夹中的整个文件树都是最新的,我可以对文件做任何我想做的事情,而不需要等待一些操作在后台完成。

如果它是一个非常大的存储库,其中一个提交与另一个有很大不同,并且在从一个提交切换到另一个提交时同步删除/添加/修改的文件需要时间,该怎么办?

我可以在git checkout返回0后立即运行操作吗?

git checkout在签出完成(或失败(之前不会退出。

后台关于auto-gc的注释在这里并不特别相关,因为auto-gc与签出是否完成无关。因此,git checkout不运行git gc --auto:因为git checkout不创建新的Git对象,所以没有意义。调用git gc --auto的事情的合理当前列表(截至约2.18(是:

  • git am
  • git commit
  • git fetch
  • git merge
  • git receive-pack(服务器(
  • git rebase

最新更新