Via*_*iuk 24 git branch rebase squash
我正在尝试将我的所有提交从当前分支重新压缩并压缩到主分支.这是我正在尝试做的事情:
git checkout -b new-feature
Run Code Online (Sandbox Code Playgroud)
在我尝试之后做了几次提交:
git rebase -i master
Run Code Online (Sandbox Code Playgroud)
在这种情况下,提交将保留在new-feature分支中
git checkout master
git rebase -i new-feature
Run Code Online (Sandbox Code Playgroud)
它给我和编辑带有noop消息的窗口.
我知道命令:
git merge --squash new-feature
Run Code Online (Sandbox Code Playgroud)
但我正在努力学习rebase命令.
Joe*_*Joe 52
让我们通过步骤.
1 - 我们创建一个新的功能分支
git checkout -b new-feature
Run Code Online (Sandbox Code Playgroud)
2 - 现在您可以在新分支上添加/删除和更新任何内容
git add <new-file>
git commit -am "Added new file"
git rm <file-name>
git commit -am "Removed a file"
cat "add more stuff to file" >> <new-file>
git commit -am "Updated files"
Run Code Online (Sandbox Code Playgroud)
3 - 接下来,选择并将任何提交压缩成一个漂亮的提交消息
git rebase -i master
Run Code Online (Sandbox Code Playgroud)
这里需要记住的关键是在第一次提交后将所有提交的"pick"文本更改为"squash".这会将所有提交压缩到您的主分支.
4 - 选择主分支
git checkout master
Run Code Online (Sandbox Code Playgroud)
5 - 将HEAD和主分支移动到new-feature所在的位置:
git rebase new-feature
Run Code Online (Sandbox Code Playgroud)
您可以在此可视化工具中尝试所有命令:http: //pcottle.github.io/learnGitBranching/
在重新定位时,Git不会将提交移动到另一个分支.它将移动分支,包括其所有提交.如果您希望在重新定位之后将提交转换为master,请使用git merge <branch tip or commit of branch>快速将master分支转发到该提交.
| 归档时间: |
|
| 查看次数: |
25306 次 |
| 最近记录: |