在git中找到本地存储库和远程存储库之间的差异

时间:2011-05-04 22:28:31

标签: windows linux git

我目前正在一个项目的两台不同的计算机上工作 - 运行Linux的笔记本电脑和运行Win7的桌面。我正在使用带有gitolite的ubuntu服务器来托管我的回购。

我正在尝试编写一个快速脚本,它将执行两项操作:

  1. 检查自上次推送以来本地存储库上是否有任何更改。如果是这样,它应该提交更改,将提交推送到远程仓库

    1a上。我不确定这是如何工作的,但是我不希望这个提交覆盖我本地没有更改的文件中的更改(即:它们可能已在其他计算机上更改,并推送)

  2. 之后,应检查远程仓库是否有自上次拉动后已更改的文件(参见1a。)。如果是这样,请将这些更改提取到本地仓库。

  3. 这个脚本的目的是让两台计算机相互同步,而不必每次都手动完成所有这些git工作。我想定期运行(每半小时一次?),所以我不希望它占用大量资源,如果可能的话。

    我不需要为我编写完整的脚本(除非它只是几行) - 只需指向我需要的命令。

1 个答案:

答案 0 :(得分:1)

比较输出:

git ls-remote <remote>
git show-ref

虽然通常做的是获取(而不是拉)遥控器并将远程分支与本地分支进行比较。如果您有非快速合并,则无法实现自动化,因为在再次推送之前需要对合并进行手动干预。