最近我们从TFS转移到GIT,所以我还在学习如何使用这个令人惊叹的工具。
目前我正在使用以下非常简单的结构:
main -------------------------------------- 01 ----------
\ /
dev ----------------------- 01 ---------- 02 ----------
\ / /
feat/login ------ 01 --- 02 --- 03 --- 04 --- 05 ---
- 开发人员在
feature/something
上工作,每隔一段时间就会进行检查并触发测试构建。 - 当功能稳定后,他们将
feature/something
合并回dev
中,其中包含1个或多个来自feature/something
的提交。 - 当整个功能准备好时,他们将从
dev
将该功能合并到main
中。
以下是问题:
- 如果我从
feat/login
开始工作,如果我执行git checkout dev
,我不仅获取不到来自dev
的最新代码,而且还保留了在feat/login
中修改但未提交的本地变更。如何在不带入之前分支的本地更改的情况下检出dev
? - 假设一个开发者犯了一个错误,如何回滚到
dev
中的先前提交01
并推送它,以便最新提交02
不再是最新提交?
stash
(储藏)或者commit
(提交)。 - Cory Kramergit reset
。请记住,当您稍后切换回来时,它们不会神奇地重新出现,这就是为什么您必须在切换之前提交或隐藏的原因。 - Lasse V. Karlsengit reset
和stash
,我不知道 :-) - Raffaeugit revert 提交记录的SHA值
创建另一个提交记录,以撤消你想要撤消的提交记录的影响。 - Lasse V. Karlsen