一个简单的 git 使用笔记
1. revert 某个 commit
# 查看 git commit 记录,取得需要的 Hash 值(每一行第一个数字)
git log --oneline
# 执行 Revert
git revert <Hash 值>
如果有报错,先 git revert --abort
,以终止 revert
2. git 分支操作
git checkout -b <branch_name> #新增分支
git switch <branch_name> #切换分支
git branch #查看所有分支
git branch -d <branch_name> #删除某个分支
3. 与 upstream 同步和 merge conflicts 相关操作
- 查看是否设置了远程库:(一般自己的远程库为 origin,上游远程库为 upstream)
git remote -v
- 添加远程库(远程库地址是 https://仓库地址.git):
git remote add upstream https://仓库地址.git
- 拉取官方版本的进展:==最好指定到稳定的版本名tag,谨慎更新到还不稳定的版本==
git fetch --tags upstream
git merge v1.0 #要升级的tag名 (例如V1.0)
- 使用 git GUI,找到冲突的文件,找到文件地址,(在 git GUI 以外) 对冲突文件进行修改/删除。
git gui
- 如果是删除了冲突文件,还需要使用
git rm 到/删除的文件/的路径
(或者直接使用一次git add .
)
git add .
- 进行 commit 合并,这里可能需要打开 GPG 程序(可能需要输入 GPG token,如果你设置过 commit 时加上GPG的话)
git commit -m "说明"
- 推送到自己的远程库的新分支,避免出错影响原有的分支。如果设置了自动编译镜像,随后会远程编译镜像。
git push origin <远程新分支名> #不需要这个远程分支已存在
- 确认没有问题后,在自己的远程库上,创建新的 main 分支,同时也不要删除新出现的版本分支,保留就好了
4. 只 git clone 一部分内容
参考: Clone a folder in a Git repository with sparse-checkout
复制多个文件夹,要操作多次
git clone --no-checkout https://path/to/the/git/repository.git
cd blog-tutorials
git sparse-checkout init --cone
git sparse-checkout set 文件夹名
git checkout @
如果是子文件夹的子文件夹,需要写出路径