【发布时间】:2014-10-01 14:49:20
【问题描述】:
我有一个关于 Git 的新手问题。
场景:
1) 我在项目中创建了一个“实验”分支
2)然后我决定做一个必须影响“实验”的更改(例如:将文件添加到 .gitignore) 分支以及主分支或我将从主分支分支的任何未来分支。
在这种情况下有什么建议?
在分支之前检查主分支上的最新提交并使用--amend 提交?
为此创建一个分支,然后与 master 和实验分支合并?当我尝试这样做时,我将“实验”分支上的所有内容应用到主分支并丢失了很多文件。我现在很困惑......任何帮助将不胜感激
更新
发生了什么(我无法在上面的最后一段中解释):
我实际上已将“修补程序”分支(已提交 .gitignore)合并到“实验”分支中,然后将其从 master 合并(在“实验”分支上,我删除了一堆文件)。
所以我用了:
git checkout master
git reset —hard [hash for the previously last commit on master]
git branch -d hotfix
git checkout -b hotfix (now from master)
git add .gitignore
git commit -m “add .gitignore”
git checkout master
git merge hotfix
git checkout experiment
git merge hotfix
git branch -d hotfix
然后我从下面的答案之一中“取消”并使用 rebase 方法再次执行此操作。由于“重写历史”的东西,它对我更有吸引力,通过查看分支图对我来说更有意义。我正在独自(到目前为止)在这个项目上工作。
【问题讨论】: