Git工作流:合并分支,同时避免重复提交消息

时间:2016-08-05 08:53:10

标签: git version-control merge branch

我正在对包含大量SCSS文件的项目进行一些SCSS重构。

这是我的方法:为每个SCSS文件重构器创建一个新分支。

例如,我创建了一个名为scss-lint-refactor-chicken的新分支并结帐,我完成了重构(包括Chicken.jsxChicken.scss以及可能还有其他一些文件)并提交了变化。

然后,我结帐以掌握,并合并分支。

主分支最终得到如下历史记录:

*   75d48b2 - (7 minutes ago) Merge branch 'scss-lint-refactor-chicken' - Rory Smith
|\  
| * 9ea664f - (9 minutes ago) SCSS lint refactor chicken - Rory Smith

我的问题是:

  1. 对于此类工作的版本控制工作流程,这是一个很好的方法吗?
  2. 如何优化流程,以便我不会以不同的方式获得2条基本上同样的提交消息?

2 个答案:

答案 0 :(得分:1)

  1. 是的,这是一种使用版本控制系统的好方法,因此您可以将您的工作留在后面,或者进行两次或多次提交以进行相同的重构。

  2. 不要害怕合并消息。他们是你的朋友。 Git不会慢,因为你有更多的提交。如果您认为它们过多地污染了您的git日志,请隐藏它们:

    dexOptions {
        javaMaxHeapSize "4g"
    }
    

答案 1 :(得分:1)

或者,

您可以在分支机构上运行package com.playground; import org.controlsfx.control.PropertySheet; import org.controlsfx.property.BeanPropertyUtils; import javafx.application.Application; import javafx.beans.Observable; import javafx.beans.binding.Bindings; import javafx.beans.property.SimpleStringProperty; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.ChoiceBox; import javafx.scene.control.ListView; import javafx.scene.layout.VBox; import javafx.stage.Stage; import javafx.util.Callback; public class BindingPlayGround extends Application{ public static void main(String[] args) { launch(); } @Override public void start(Stage primaryStage) throws Exception { primaryStage.setTitle("FXPlayGround"); Parent content = createContentPane(); Scene scene = new Scene(content, 800, 600); primaryStage.setScene(scene); primaryStage.show(); } protected Parent createContentPane() { ObservableList<BeanExample2> beans = FXCollections.observableArrayList(); ObservableList<PropertySheet> sheets = FXCollections.observableArrayList(); ListView<PropertySheet> listView = new ListView<PropertySheet>(sheets); Button addBeanButton = new Button("Add Bean"); addBeanButton.setOnAction(new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent event) { BeanExample2 e = new BeanExample2(); e.setName("Name-not-set"); PropertySheet propertySheet = new PropertySheet(BeanPropertyUtils.getProperties(e)); sheets.add(propertySheet); beans.add(e); } }); VBox vBar = new VBox(); vBar.getChildren().add(listView); vBar.getChildren().add(addBeanButton); ObservableList<BeanExample2> names = FXCollections.observableArrayList(new Callback<BeanExample2, Observable[]>() { @Override public Observable[] call(BeanExample2 param) { return new Observable[]{new SimpleStringProperty(param, "name")}; } }); Bindings.bindContent(names, beans); Button addChoiceBoxButton = new Button("Add ChoiceBox"); addChoiceBoxButton.setOnAction(new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent event) { ChoiceBox<BeanExample2> choiceBox = new ChoiceBox<BeanExample2>(names); vBar.getChildren().add(choiceBox); } }); vBar.getChildren().add(addChoiceBoxButton); return vBar; } static class BeanExample2 { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return "BeanExample2{" + "name='" + name + '\'' + '}'; } } } ,然后从git rebase master分支机构运行git merge <branch>。这将删除master提交,并可能使提交历史记录更清晰。