bod*_*ser 6 git version-control rebase git-merge git-rebase
我目前使用 git 的方式如下:
不幸的是,这有时会变得混乱。我想做的是将一些较小的提交合并到一个较大的提交中。
此外,有时将新分支中的所有提交合并到一个提交并将其合并到 master 也是一个好主意。
例子:
git branch update-docs
git checkout update-docs
git add -A .
git commit -m 'updated networking doc'
git add -A .
git commit -m 'updated manager doc'
git checkout master
git merge update-docs
Run Code Online (Sandbox Code Playgroud)
正如您现在所知,我将在主分支“更新的网络文档”和“更新的管理器文档”中进行两次提交。
如果我现在只想在 master 分支中有一个名为“更新的文档”的提交,例如,其中包含这两个提交的更改,我该怎么办?
我认为你必须使用 git rebase 来完成此类任务。我只是不知道如何使用它。
我已经尝试过:
git checkout master
git rebase update-docs
Run Code Online (Sandbox Code Playgroud)
但这将更改合并到 master 而不留下任何提交,现在存储库被搞乱了。
那么有人会分享您必须使用的命令吗?
解决方案:
git checkout -b update-readme
git commit -am 'rewritten readme'
git commit -am 'added author name'
git rebase -i master
Run Code Online (Sandbox Code Playgroud)
打开文本编辑器:
pick 6dbcbf1 rewritten readme
pick b815bbf added author name
Run Code Online (Sandbox Code Playgroud)
现在你将其更改为:
pick 6dbcbf1 rewritten readme
squash b815bbf added author name
Run Code Online (Sandbox Code Playgroud)
然后,如果使用 vim,则使用“:w”和“:q”保存,它将打开另一个编辑器,您可以在其中定义新的提交名称
rewritten readme
Run Code Online (Sandbox Code Playgroud)
然后合并存储库:
git checkout master
git merge update-readme
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10577 次 |
| 最近记录: |