关于最佳实践的一个稍微开放的问题,我可以找到很多关于 git 的功能指南,但没有太多关于标准操作顺序等的信息:
使用远程存储库的标准/好方法是什么,特别是进行更改并将其全部返回到远程主存储库。有人可以提供他们在执行此操作时通常遵循的程序的分步列表吗?例如:
- 克隆仓库
- 创建头部的新本地分支
- 在本地进行更改并提交到本地分支
- ...
答案1
以下是我的做法。我通常自己处理远程存储库,因此欢迎提出意见,尤其是来自使用类似工作流程协作的人的意见。
在本地计算机上:克隆远程存储库。
git clone ssh://user@master:path/my_rep
cd my_rep
克隆的存储库会自动创建指向主存储库的“源”链接。在开始工作之前,最好先提取最新更改并创建本地分支:
git pull origin --rebase
git checkout -b local_mybranch
(... work ...)
git commit -a
(... work ...)
git commit -a
在将更改推送到主分支之前,您始终可以提取主分支更改,并将工作分支重新定位到该分支上。我经常使用的一个技巧是使用 -i 选项进行重新定位。这样,您就可以将您的提交粘贴到单个大型提交中。
git checkout master
git pull --rebase
git checkout local_mychanges
git rebase -i master
然后将你的更改推送到远程: git push origin local_mybranch:mybranch_on_remote
在远程存储库上。您(或其他人)可以合并主分支中的更改。
git checkout master
git merge mybranch_on_remote
答案2
因为我的项目通常是我想在本地开发并在远程服务器上测试的 Web 应用程序,所以我几乎总是在远程服务器上保留所有分支的最新副本。唯一的例外是我在进行非常模糊的概念验证测试。
因此,如果您从中提取的存储库称为 origin 并且您在本地创建的分支称为 mybranch,则我的工作流程是:
1)从 origin 克隆仓库
2)签出新分支
3)将分支推送到原点,并将其设置为考虑上游版本:
git push -u origin/mybranch
这意味着您在服务器上保留每个分支的规范版本,这有几个优点。
您可以轻松地在我的代码托管网站上查看版本历史记录,并且可以将测试分支从远程拉到暂存服务器上进行测试。
这也意味着在您的项目上工作的任何其他人都可以轻松查看、签出和跟踪该分支的合并。
如果您已将分支推送到服务器但未将其设置为考虑远程复制其上游,请使用以下命令:
git branch --set-upstream-to=origin/mybranch