Github进行fork后如何与原仓库同步
Fork同步
- 检查本地仓库状态
1
git status
- 拉取远端源仓库更新
1
git fetch upstream
- 切换到 master 分支
1
git checkout master
- 合并远程的master分支
1
git merge upstream/master
- 推送修改至 Fork仓库
1
git push
子模块恢复
使用
git log
命令查找删除子模块之前的提交哈希值使用
git checkout
命令恢复.gitmodules
文件和子模块路径。将<commit-hash>
替换为步骤 3 中找到的哈希值,将<path>
替换为子模块的路径。1
git checkout <commit-hash> -- .gitmodules <path>
使用
git status
命令查看仓库状态。应该会看到.gitmodules
文件和子模块路径的更改。使用
git add
命令将.gitmodules
文件和子模块路径添加到暂存区。1
git add .gitmodules <path>
使用
git commit
命令提交更改1
git commit -m "Restore submodule"
使用
git submodule update --init --recursive
命令初始化并更新子模块1
git submodule update --init --recursive
使用
git push
命令将更改推送到远程仓库
提交记录合并
假设要合并最近的三个提交。
1
git rebase -i HEAD~3
这将打开一个交互式 rebase 窗口,列出了最近的三个提交
- 编辑提交历史: 在弹出的编辑器中,你会看到一个包含你最近提交的列表。每个提交前面都有一个单词
pick
。将除第一个以外的所有pick
更改为squash
或s
。这样就将它们合并到第一个提交中。确保第一个提交的行保持pick
,这将成为合并后的提交。 - 保存并关闭编辑器: 保存并关闭编辑器。Git 将自动继续执行 rebase 操作。
- 编辑新的提交信息: Git 将打开另一个编辑器窗口,让你编辑合并后的提交信息。编辑信息以描述这些提交的整体内容。
- 完成 rebase 操作: 保存并关闭编辑器。Git 将应用 rebase,并将你的提交历史整理成一条新的提交。
- 推送到远程仓库(可选): 如果这些提交是你已经推送到远程仓库的,你可能需要使用
git push --force
强制推送来更新远程分支。
本文由作者按照 CC BY 4.0 进行授权