原始笔记

在 Neovim 中编辑、删除冲突标记并保存

完整命令速查

cd /path/to/repository

git status
git fetch origin

git switch feature-std-dev
git pull --ff-only origin feature-std-dev

git merge origin/develop

git status
git diff --name-only --diff-filter=U
git diff --name-only --diff-filter=U -z | xargs -0 nvim

# 在 Neovim 中编辑、删除冲突标记并保存

git add inflammation-analysis.py
git add inflammation/models.py
git add tests/test_models.py

git diff --name-only --diff-filter=U
git diff --cached
git diff --check

python -m pytest

git commit -m "Merge develop into feature-std-dev and resolve conflicts"
git push origin feature-std-dev
git fetch origin

fetch 只更新远程分支引用,不会实际拉取代码

切换到 PR 的功能分支

git switch feature-std-dev

develop 合入功能分支

git merge origin/develop

方向很重要:

当前所在分支:feature-std-dev
合入的分支:origin/develop

这样解决冲突的提交会进入 feature-std-dev,之后 push 回去即可更新 PR,而不会直接修改 develop

只列出冲突文件:

git diff --name-only --diff-filter=U

Neovim 打开冲突文件

一次打开全部冲突文件:

git diff --name-only --diff-filter=U -z | xargs -0 nvim

git remote -v

查看当前仓库配置了哪些远程仓库,以及对应地址。 典型输出:

origin  git@github.com:user/project.git (fetch)
origin  git@github.com:user/project.git (push)

含义:

  • origin:远程仓库的名称,通常默认叫 origin
  • fetch:拉取代码时使用的地址
  • push:推送代码时使用的地址
  • -v:verbose,显示详细信息,即远程仓库 URL

git branch -a

查看仓库中的所有分支

  • 本地分支
  • 远程跟踪分支 典型输出:
* main
  dev
  remotes/origin/main
  remotes/origin/dev

含义:

  • * main:当前所在的本地分支是 main
  • dev:本地存在 dev 分支
  • remotes/origin/main:远程仓库 origin 上的 main 分支在本地的跟踪记录
  • -a:all,显示所有本地和远程分支

Switch to English