有没有一条 Git 命令(或者一系列简短的命令),能够安全可靠地执行以下操作?
- 取消所有本地修改。
- 如有必要,从远程获取给定分支。
- 检出给定分支?
目前我被卡住了:
git fetch -p
git stash
git stash drop
git checkout $branch
git pull
但是我很烦恼,因为我被要求输入两次密码(由 fetch
和 pull
)。通常只要密码只需要输入一次,任何解决方案我都会很高兴。
一些说明:
- 这是一个应用程序的自制部署脚本(代码托管在GitHub上)的一部分。
- 如果分支已经从原始版本中获取,也不应该有任何区别(即新分支的第一次部署理想情况下不需要任何额外的步骤)。
- 脚本位于可以被多个人访问的远程机器上,因此不存储凭据,必须输入用户名/密码(但如果可能的话,只需输入一次)。
- 我不关心任何本地更改;我始终希望得到给定分支的原始副本(部署脚本的后半部分会产生本地更改)。
- 我无法每次都克隆或导出新的存储库;这需要太长时间。
git reset --hard
:回退到最新的提交状态git checkout $branch
:切换到指定分支git pull origin $branch
:从远程仓库拉取指定分支的最新代码