如何 git commit 和 push?

问题描述

我一定遗漏了一些东西,几乎总是当我要推送我的提交时,我会被阻止,因为其他人在我之前推送了一个提交,而我的更改(我的提交)不是基于遥控器的提示没有了。

在这种情况下,我将再次克隆 repo(在另一个文件夹中)并再次手动更改每个文件,提交并希望没有人再次推到我之前。有时它会发生,所以我会第二次将 repo 克隆到另一个文件夹中,并重复相同的历史记录。

在观察提交历史时,通过我的方法,我看到了一条我喜欢的简洁线条。

我注意到项目中的其他开发人员在他们自己的提交之后经常进行合并提交。我想那是因为他们面临着与我相同的情况(之前有人推动过并且更改不再基于提示),但他们以不同的方式处理这种情况(使用合并提交)。

问题是这些合并提交(至少它们的完成方式)没有引入任何东西,它们只是重复以前提交的更改,因为似乎开发人员没有在推送之前发出拉取。换句话说,我会说,提交历史行是脏的。

我想合并提交方法比再次克隆 repo 并再次修改每个文件要快得多。但是提交历史记录行很脏。

项目只使用一个分支,master。并托管在本地网络的共享文件夹中。

我过去常常从命令行执行 git,但现在我几乎一直都在使用 https://www.sublimemerge.com

如何改进我的提交/推送工作流程?我应该使用其他工具吗?

解决方法

首先,如果您在不同的分支上进行开发会更好。即使您的其他开发人员坚持这样做,也不会阻止您进行分支。

  1. 创建一个新分支。
  2. 做你的工作,根据需要提交到这个分支。
  3. 切换到主
  4. 下拉新的更改。
  5. 将你的分支合并到 master
  6. 推动更改。

或者,如果你真的坚持不使用分支并且你不喜欢这些合并提交,你可以做一个 rebase。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...