我的理解是git add
,您基本上是在对本地 git 存储库说“是的,我确定我想进行这些更改。”
我的理解是git commit
实际将更改保存到本地 HEAD 分支。此时它们实际上处于版本控制中,但仅对您的 git 实例是本地的。
我的理解是git push
将您保存的(提交的)更改传播到主存储库,以便其他开发人员(或者可能是 CI 构建)可以自己将它们拉下来。
如果到目前为止我所说的任何内容是错误的或具有误导性,请先纠正我。假设我的理解是正确的,我的 Java 项目中最初有一个包,如下所示:
com.myapp.server.servlets
FizzServlet
BuzzServlet
但后来我决定重构名称和一些东西,以及添加和删除一些新文件/包:
com.myapp.server.servlet
FizzesServlet
WidgetServlet
com.myapp.server.servlet.impl
FizzesServletImpl
WidgetServletImpl
总的来说,我对这个目录进行了 5 处更改:
- 将名称从“
com.myapp.server.servlets
”更改为“com.myapp.server.servlet
” - 将名称从“
FizzServlet
”更改为“FizzesServlet
” BuzzServlet
彻底删了- 添加了一个新的
WidgetServlet
- 添加了一个
com.myapp.server.servlet.impl
包含两个子文件的新包
我是否必须在这里做任何特殊的命令魔术,因为我做了很多重构,或者我可以运行类似git push *
将所有内容推送到 GitHub 的东西吗?在 SVN Eclipse 插件中,如果我重命名了一个包或源文件,然后尝试提交该更改,我通常会(本地)完全丢失该文件,并且必须从本地历史记录中恢复。即便如此,我还是被烧了太多次,数不清,失去了很多工作。我希望不会在 Git 上获得相同的体验。