团队协作

Git 教程 · 第 7 章 · 6 次浏览

两个人改了同一处代码,merge/pull 时就会冲突。Git 会把冲突标记进文件,手动选择保留哪份,然后提交。

冲突标记

<<<<<<< HEAD 开头是当前分支版本,======= 分隔,>>>>>>> 后面是合并进来的版本。手动删除标记、保留想要的代码。

解决步骤

  1. git status 看哪些文件冲突
  2. 编辑冲突文件,保留正确内容,删标记
  3. git add 冲突文件
  4. git commit 完成合并

预防

及时 pull 保持最新、小步提交、尽量不同人改不同文件。

代码示例

# 冲突时文件内容长这样
# <<<<<<< HEAD
# const price = 5.5;        ← 我的版本
# =======
# const price = 6.0;        ← 合并进来的版本
# >>>>>>> feature-price

# 解决:删掉标记,保留要的
const price = 6.0;

# 然后
git add index.js
git commit -m "解决价格冲突"

# 中断合并(想放弃时)
# git merge --abort
📚 Shell 命令速查
常用条目速查,完整版见对应教程章节。可复制代码到在线运行中测试。
写法 / 语法作用
ls / ls -la列出文件(-la 显示隐藏和详情)
cd 目录切换目录
pwd显示当前目录
mkdir -p 目录创建目录(-p 自动建父级)
touch 文件创建空文件
cp -r 源 目标复制(-r 递归复制目录)
mv 源 目标移动 / 重命名
rm -rf 目录删除(危险,慎用)
cat 文件查看文件内容
less 文件分页查看文件(q 退出)
grep "关键词" 文件按关键词搜索
find . -name "*.php"按名称查找文件
chmod 755 文件修改权限
ps aux查看进程
kill 进程号结束进程
top实时资源监控
df -h / free -m磁盘 / 内存占用
tar -czf a.tar.gz 目录打包压缩
tar -xzf a.tar.gz解压
curl 网址请求网址(测试接口)
wget 网址下载文件
ssh 用户@主机远程登录
scp 文件 用户@主机:/路径远程传文件
sudo 命令以管理员执行
crontab -e编辑定时任务