合并冲突

在修改公共文件的时候可能会产生冲突,比如大家都可以在dev操作,你修改了git.py 文件,另外一个同事也修改了git.py 文件,就会出现冲突的情况。

比如: 开发人员A在dev修改了git.py 先切换到 dev 分支

git branch dev

1、添加 add2 方法

def add():
    print('git大法好')

def add1():
    print('打狗棒法')

def add2():
    print('打狗棒法真的好耶')

2、添加到暂存区

git add git.py

3、提交到仓库区

git commit -m '添加add2方法'

4、同步到服务器

git push origin dev

开发人员B也在dev分支修改了 git.py

1、先克隆 项目

 git clone git@gitee.com:huangguifeng/django_blog.git

2、进入到项目目录

cd cd  django_blog/

3、创建dev分支

git branch dev

4、跟踪服务器上的dev分支

git branch --set-upstream-to=origin/dev

5、同步服务器上的代码

git pull

6、修改git.py

def add():
    print('git大法好')

def add1():
    print('打狗棒法')

def add2():
    print('打狗棒法真的好耶')

def add3():
    print('少林功夫好')

7、添加到暂存区

git add git.py

8、提交到仓库区

git commit -m '添加add2方法'

9、同步到服务器

git push origin dev

这里可能都不会产生冲突,但是如果A发现刚才改的方法好像有点问题,回去从新修改下,再提交就会提示: 更新拒绝,原因是有人修改过了,需要先同步。提示我们使用 git pull

同步服务器dev分支:

git pull

同步之后就会提示我们那个文件有冲突。我们需要找到有冲突的文件手动修改冲突。

打开文件git.py

def add():
    print('git大法好')

def add1():
    print('打狗棒法')
def add2():
<<<<<<< HEAD
    print('打狗棒法真的好耶,真的')
=======
    print('打狗棒法真的好耶')

def add3():
    print('少林功夫')
>>>>>>> 8f81b29cf10eb8aa11e68b5c9810e58470a4ee20

<<<<<<< HEAD表示当前版本的内容,=======后面,表示>>>>>>> ae79e1fd93d0d9e7f8ca36481c611a2b4a38a9db版本的内容,发现两句代码并不冲突,都需要保留,但add2方法有两句print,如果不是自己写的,不能确定是否保留,可以与编写该语句的人员沟通,当前代码更改后如下

def add():
    print('git大法好')

def add1():
    print('打狗棒法')

def add2():
    print('打狗棒法真的好耶,真的')
    print('打狗棒法真的好耶')

def add3():
    print('少林功夫')

冲突解决完成再次提交推送服务器,就不会出错了。

git add ./
git commit -m '修改add2方法,解决突出'
git push origin dev

历史版本

查看历史版本记录

git reflog

HEAD表示当前版本,也就是最新的提交的版本,上一个版本就是HEAD^,再上一个版本就是HEAD^^,也可以使用 HEAD~2,接数字表示第几个版本。

对比工作区和仓库区中某版本某文件的不同:

git diff HEAD -- 文件名
例:
git diff HEAD^ -- git.py   # 对比上一个版本,与当前工作区的内容的区别

+ 表示当前工作区,比仓库区对比版本多的内容
- 表示当前工作区,比仓库区对比版本少的内容。

版本回退

git reset HEAD^或版本号
例:
git reset HEAD^ 
或者
git reset 15a237e

git reset 不是直接回退到工作区,而是先回退到暂存区。可以使用 git status 查看暂存区内容。

暂存区的内容恢复到工作区

git checkout -- git.py

恢复之后查看git.py的内容就是前一个版本的内容。

def add():
    print('git大法好')

def add1():
    print('打狗棒法')
def add2():
    print('打狗棒法真的好耶,真的')
~
Iyoyo电子书 一本集作者多年开发经验的python电子书 all right reserved,powered by Gitbook文件修订时间: 2022年 20:22:08