只推送文件中修改过的行
Push only modified line in File
最近,我学会了如何将我的解决方案添加到源代码管理中。之后我将它连接到我的 GitLab 帐户。
对于单个开发人员,我基本上知道事情是如何工作的,从本地提交到将其推送到服务器以反映并将更改合并到在线存储库。
但我想知道,如果我在一个团队中,比方说,三个成员,这会如何发生。所有三个都在使用一个解决方案,但在我们自己的笔记本电脑上使用我们自己的副本
是否可以只将修改后的行合并到服务器。我在合并到服务器时遇到冲突
例如,我添加了 3 行并将更改提交到服务器,然后在我的队友有 5 行之后,我的版本被覆盖而不是合并在一起。
我是不是漏了什么?谢谢
我想你需要一点解释,假设团队由 2 名成员 (A-B) 组成,他们在同一下午编码。
- A 提交他的更改,然后推送到远程存储库;
- B 提交他的更改,然后在 A 之后推送到远程存储库;
当 B 推送时,他的本地代码与远程存储库代码不一致,因为历史记录中有一个新的提交。用户 B 被迫在推送之前拉取新提交并最终在本地解决合并冲突。
然后,B 也可以推送到远程存储库,A 可以拉取 B 所做的新更改。
希望我解释清楚。
首先,让我们坚持使用 git 术语:您可以 merge
分支和 push
或 fetch
它们 to/from 服务器(remote
).
因此,如果您在 将 推送到 remome 时遇到冲突,那么您必须 fetch
从远程进行更改,merge
在本地进行更改,并且 push
回到原点(远程)你的提交,几乎总是 "merge commit".
关于 header 中的问题:
Push only modified line in File
是的,可以stage
和commit
只有一个hunk
(几行代码)而不是所有文件。参见 git add -p
。或者,如果您更喜欢 GUI 界面,据我所知,github 的官方客户端支持 hunks 提交。
一个好的做法是总是在推送之前从远程拉下任何更改。这将允许用户获得您所做的任何更改并合并他们的更改。
合并冲突是预期的结果,因为您和您的合作伙伴都修改了相同的行,这正是您为了不覆盖彼此的更改而需要的。您只需要在推送之前解决合并冲突。唯一会覆盖彼此更改的情况是,如果您在解决合并时放弃其他人的更改并接受您的更改。
您可以使用许多合并工具,例如 kdiff, diffmerge 等,它们可以帮助您 select 添加哪些行,这样您就不会覆盖彼此的更改。
最近,我学会了如何将我的解决方案添加到源代码管理中。之后我将它连接到我的 GitLab 帐户。
对于单个开发人员,我基本上知道事情是如何工作的,从本地提交到将其推送到服务器以反映并将更改合并到在线存储库。
但我想知道,如果我在一个团队中,比方说,三个成员,这会如何发生。所有三个都在使用一个解决方案,但在我们自己的笔记本电脑上使用我们自己的副本
是否可以只将修改后的行合并到服务器。我在合并到服务器时遇到冲突
例如,我添加了 3 行并将更改提交到服务器,然后在我的队友有 5 行之后,我的版本被覆盖而不是合并在一起。
我是不是漏了什么?谢谢
我想你需要一点解释,假设团队由 2 名成员 (A-B) 组成,他们在同一下午编码。
- A 提交他的更改,然后推送到远程存储库;
- B 提交他的更改,然后在 A 之后推送到远程存储库;
当 B 推送时,他的本地代码与远程存储库代码不一致,因为历史记录中有一个新的提交。用户 B 被迫在推送之前拉取新提交并最终在本地解决合并冲突。
然后,B 也可以推送到远程存储库,A 可以拉取 B 所做的新更改。
希望我解释清楚。
首先,让我们坚持使用 git 术语:您可以 merge
分支和 push
或 fetch
它们 to/from 服务器(remote
).
因此,如果您在 将 推送到 remome 时遇到冲突,那么您必须 fetch
从远程进行更改,merge
在本地进行更改,并且 push
回到原点(远程)你的提交,几乎总是 "merge commit".
关于 header 中的问题:
Push only modified line in File
是的,可以stage
和commit
只有一个hunk
(几行代码)而不是所有文件。参见 git add -p
。或者,如果您更喜欢 GUI 界面,据我所知,github 的官方客户端支持 hunks 提交。
一个好的做法是总是在推送之前从远程拉下任何更改。这将允许用户获得您所做的任何更改并合并他们的更改。
合并冲突是预期的结果,因为您和您的合作伙伴都修改了相同的行,这正是您为了不覆盖彼此的更改而需要的。您只需要在推送之前解决合并冲突。唯一会覆盖彼此更改的情况是,如果您在解决合并时放弃其他人的更改并接受您的更改。
您可以使用许多合并工具,例如 kdiff, diffmerge 等,它们可以帮助您 select 添加哪些行,这样您就不会覆盖彼此的更改。