震惊!新来的组长太水了,连合并代码解决冲突都不会,竟然直接丢弃~
代码合并冲突的正确姿势
1. Git 合并冲突的工作原理
2. 如何避免“直接丢弃”的做法?
理解修改背景:先明确这段代码冲突的背景,理解自己和他人修改的动机。 评估哪部分更合适:检查冲突的两部分代码,哪一部分更适合当前需求,或者是否能够融合两者的优点。 手动合并:如果两个修改都很有价值,就需要手动合并代码。这就需要我们拥有一定的代码阅读和分析能力。
3. 一个简单的例子:如何解决 Git 合并冲突?
feature/login 分支上进行开发,另一个在 feature/register 分支上修改相同的 handleLogin 方法:// feature/login 分支
public void handleLogin(String username, String password) {
if (username == null || password == null) {
throw new IllegalArgumentException("Username or password is missing.");
}
// login logic
}
// feature/register 分支
public void handleLogin(String username, String password) {
if (username == null || password == null) {
throw new IllegalArgumentException("Username or password cannot be empty.");
}
// register logic
}
<<<<<<< HEAD
public void handleLogin(String username, String password) {
if (username == null || password == null) {
throw new IllegalArgumentException("Username or password is missing.");
}
// login logic
}
=======
public void handleLogin(String username, String password) {
if (username == null || password == null) {
throw new IllegalArgumentException("Username or password cannot be empty.");
}
// register logic
}
>>>>>>> feature/register
<<<<<<< HEAD 表示我们当前分支的修改,======= 分隔的是合并的地方,>>>>>>> feature/register 是对方分支的修改。我们可以选择保留原来的错误信息,并在此基础上加上注册逻辑,也可以选择合并两者的错误提示。例如,合并成如下:
public void handleLogin(String username, String password) {
if (username == null || password == null) {
throw new IllegalArgumentException("Username or password cannot be empty.");
}
// login and register logic
}
直接丢弃代码,后果可不小
我们应该如何改进?
对编程、职场感兴趣的同学,大家可以联系我微信:golang404,拉你进入“程序员交流群”。
虎哥作为一名老码农,整理了全网最全《python高级架构师资料合集》。