实验:两个人(多个人)git push 会产生冲突
准备:
1.新建远程仓库demo
2.准备文件夹 u1
3.u1用户初始化远程仓库
4.u2用户 git clone 把初始化好的远程库执行下载,下载的demo文件夹就是仓库
mv demo u2 // 将demo 文件夹改名为u2
5. cd u2
6. 设置u2用户的邮箱和姓名
git config --local user.name 'yzj'
git config --lcoal user.email 'yzj@qq.com'
实验阶段:
u1 用户
vi a
echo '1111' >> a
git add .
git commit -m 'u1 增加了a'
git push
u2 用户
vi a
echo '2222' >> a
git add .
git commit -m 'u2 增加了a'
git push --》 推送失败
/*
! [rejected] master -> master (fetch first)
error: 推送一些引用到 'git@github.com:XuanqiYan/demo.git' 失败
提示:更新被拒绝,因为远程仓库包含您本地尚不存在的提交。这通常是因为另外
提示:一个仓库已向该引用进行了推送。再次推送前,您可能需要先整合远程变更
提示:(如 'git pull ...')。
提示:详见 'git push --help' 中的 'Note about fast-forwards' 小节
*/
git pull == fetch + merge
/*
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 3 (delta 0), pack-reused 0
展开对象中: 100% (3/3), 268 字节 | 134.00 KiB/s, 完成.
来自 github.com:XuanqiYan/demo
63dfce9..fb568e1 master -> origin/master
冲突(add/add):合并冲突于 a
自动合并 a
自动合并失败,修正冲突然后提交修正的结果。
*/
解决冲突
vi a
git add .
git commit -m '冲突已经解决'
u2 用户把最新的解决完冲突的版本提交到仓库
git push
u1 从远程仓库把最新的版本在更新到本地
git pull