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

6
有没有一种标准的方法可以同步git工作区与另一个目录。 假设我有一个在git版本控制下的目录。这个目录被拿到外面进行更改(文件被更改,添加和删除)。然后它会被返回到我的机器上。我如何轻松地将所有这些更改集成到git中。
如果我只是简单地复制文件,那么新添加和更改的文件就没问题了,但是关于已经删除的文件的信息将会丢失。是否有任何办法可以轻松地对在目录不在git中时被删除的文件执行git rm命令?
2个回答

5

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

--work-tree选项在git(1)手册页上有描述。

但是,在运行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。好的观点。我也在我的回答中包括了结账步骤。 - VonC

4
您可以使用--work-tree选项,直接在git命令中操作:
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答案中提到,用于将你自己的本地工作树与你刚刚更新的索引同步。

这样,你就可以比较:

  • "another/directory" 的内容(由 --work-tree 选项引用)
  • 与你当前的仓库索引(你正在执行 git 命令的地方)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接