将git工作区与另一个文件夹同步

时间:2014-04-12 11:28:05

标签: git

是否有一种将git工作区与另一个目录同步的标准方法。 假设我有一个受git版本控制的目录。该目录在异地进行,并对其进行更改和完成(文件已​​更改,添加和删除)。然后它返回我的机器。如何轻松地将所有这些更改集成到git中。

如果我只是复制文件,那么新的和更改的文件就可以了,但有关删除文件的信息将会丢失。有没有办法轻松对目录在git之外删除的文件执行git rm?

2 个答案:

答案 0 :(得分:5)

VonC的答案看起来像你想要的第一部分。

git(1) Manual Page

中描述了--work-tree选项

然而,在运行git --work-tree=/path/to/your/other/directory add -A .后,您的索引与本地(原始)目录不同。要使本地目录与索引(包含脱机目录中的所有更改)匹配,请运行git checkout .

git --work-tree=/path/to/your/other/directory add -A .
git checkout .

答案 1 :(得分:4)

您可以使用git command本身的--work-tree选项:

cd /path/to/your/local/repo
git --work-tree=/path/to/your/other/directory status
git --work-tree=/path/to/your/other/directory add -A .
git checkout .

这将检测新的,已修改的已删除的文件 Mike Lippert' answer中提到了最后一个命令,用于将您自己的本地工作树与刚刚更新的索引同步。

那样,你正在比较:

  • " another/directory"的内容(由--work-tree选项引用)
  • 包含当前仓库的索引(执行git的地方)