我有一个用例,脚本需要获取远程存储库才能获取此远程存储库中特定文件的最新版本。拉取远程存储库的通常建议是git checkout master
移动到master
分支,git remote update -p
从远程存储库中获取并删除远程中不再定义的分支,最后git merge --ff-only @{u}
合并更改是可能的。但是,如果我的脚本从不在本地创建其他分支或从不添加/提交任何内容,我是否需要所有这些。我是否正确,如果本地存储库的唯一更改来自远程存储库,那么就git pull
足够了吗?
您不需要“合并”操作(“拉”暗示)。要检查文件是否已更新,您可以使用
git fetch origin refs/heads/master
git diff --quiet FETCH_HEAD..last-check -- the-file || echo "changed"
git branch -f last-check FETCH_HEAD
the-file
git 意义上的“最后一次修订”(已更改的地方)是
git log --format=format:%H -1 FETCH_HEAD -- the-file
要获取文件的内容,您可以使用
git show FETCH_HEAD:the-file
要替换工作目录中的文件(且仅此一个文件),请使用
git checkout FETCH_HEAD -- the-file
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句