【发布时间】:2013-08-31 11:29:22
【问题描述】:
是否有一个 Git 命令(或一小段命令)可以安全可靠地执行以下操作?
- 摆脱任何本地更改。
- 如有必要,从原点获取给定分支
- 签出给定的分支?
目前我被困在:
git fetch -p
git stash
git stash drop
git checkout $branch
git pull
但这让我很困扰,因为我被要求输入密码两次(fetch 和 pull)。 一般来说,只要密码只需要一次,我就会对任何解决方案感到满意。
几点说明:
- 它是应用程序自制部署脚本的一部分(代码托管在 GitHub 上)。
- 分支是否已从源获取应该没有区别(即,新分支的首次部署理想情况下不需要任何额外步骤)。
- 该脚本位于可供多人访问的远程计算机上,因此不会存储任何凭据,并且必须输入用户/密码(但如果可能,只需输入一次)。
- 我不关心任何本地更改;我总是想要给定分支的原始副本(部署脚本的另一部分会产生本地更改)。
- 我无法每次都克隆或导出新的存储库;太费时间了。
【问题讨论】:
-
1.
git reset --hard2.git checkout $branch3.git pull origin $branch -
仅供参考,如果您使用 ssh 密钥,您将永远不会被提示输入密码。
-
@Slam 如果您使用的是 GitLab,则不会。
标签: git deployment git-checkout