是否有一种将git工作区与另一个目录同步的标准方法。 假设我有一个受git版本控制的目录。该目录在异地进行,并对其进行更改和完成(文件已更改,添加和删除)。然后它返回我的机器。如何轻松地将所有这些更改集成到git中。
如果我只是复制文件,那么新的和更改的文件就可以了,但有关删除文件的信息将会丢失。有没有办法轻松对目录在git之外删除的文件执行git rm?
答案 0 :(得分:5)
VonC的答案看起来像你想要的第一部分。
中描述了--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
的地方)