Git的使用备忘录(git merge –squash)

首先

用于有效地使用Git的备忘录。
适用于想要将存储库放在GitHub上,但不想上传详细提交信息的人们。

流动

    1. 切割主题分支,并在其下再割出一个topic-develop分支。

 

    1. 将topic-develop分支仅保留在本地,并随意进行提交。

 

    在适当的时间点,将topic-develop分支通过git merge –squash合并到topic分支中。

如果这样做,在第2步就不必为提交消息烦恼了。
在第2步提交的提交会在第3步被压缩(合并),
所以在Github上查看时,不会出现奇怪的提交增加。

挺不错的。 de.)

分支主题

砍下两个分支。

$ git branch
* master
$ git checkout -b topic-branch
Switched to a new branch 'topic-branch'
$ git checkout -b topic-branch-dev
Switched to a new branch 'topic-branch-dev'
$ git branch
  master
  topic-branch
* topic-branch-dev

长出承诺

可以随意在 topic-branch-dev 进行提交。
只要编译通过的代码(无论是什么)都应该提交到这里。

$ touch hoge
$ git add .
$ git commit -m "ほげした"
[topic-branch-dev 3321e9d] ほげした
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 hoge
$ 
$ touch fuga
$ git add .
$ git commit -m "ふがした"
[topic-branch-dev db4e233] ふがした
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 fuga

将主题分支合并到目标分支,使用 –squash 选项。

$ git checkout topic-branch
Switched to branch 'topic-branch'
$ git merge --squash topic-branch-dev
Updating 0332922..db4e233
Fast-forward
Squash commit -- not updating HEAD
 fuga | 0
 hoge | 0
 2 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 fuga
 create mode 100644 hoge

只有通过git commit才能完成合并(commit) squash merge到这个状态。

$ git commit

提交信息中,在第一行写一个酷炫的提交信息,
之后的部分则保留自动出现的内容不变。

Implement hoge & fuga

Squashed commit of the following:

commit db4e233fb2f58211d2364dca66afc0112470cda5
Author: Kenta Hamanaka <hamanaka@cs.info.mie-u.ac.jp>
Date:   Wed Feb 8 12:31:18 2017 +0900

    ふがした

commit 3321e9d63eef8f956073a72bd6170ac6a4e0c373
Author: Kenta Hamanaka <hamanaka@cs.info.mie-u.ac.jp>
Date:   Wed Feb 8 12:30:58 2017 +0900

    ほげした

然后将它推送。

$ git push origin topic-branch
Counting objects: 7, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (7/7), 1.02 KiB | 0 bytes/s, done.
Total 7 (delta 3), reused 0 (delta 0)
remote: Resolving deltas: 100% (3/3), completed with 3 local objects.
To git@github.com:kentahama/test.git
   0cd8dc9..cc82330  topic-branch -> topic-branch

总结

使用`git merge –squash`非常方便。

由于开发终端只有topic-branch-dev分支保留下来,反过来说,不能从其他终端继承未合并的topic-branch-dev提交。在这种情况下,可以在可以从两个终端访问的远程服务器上使用git init –bare并将其推送到那里。或者可以在GitHub上创建一个私有仓库。感觉有点本末倒置(?)

bannerAds