问题一、如何remote origin 俩个代码仓库协同开发
- 需求:有俩个代码
仓库A、仓库B,仓库B···即能在仓库A代码基础上定制开发,又能同步仓库A上的更新代码··· - 在
仓A基础上创建仓B,并在仓B上开发 - 当
仓A有改动时,手动合并到库B,并且不影响库B的定制功能代码。
操作步骤如下
- 添加源分支url
git remote add upstream 替换成源项目url
git remote add upstream 替换成源项目url
- 查看远程关联代码
git remote -v
git remote -v
- 从源分支获取最新的代码
git fetch upstream
git fetch upstream
- 合并本地分支和源分支,本地库和远程的github原仓库同步
git merge upstream/release-2.1.3-HT --allow-unrelated-histories
git merge upstream/release-2.1.3-HT --allow-unrelated-histories
问题二、代码回滚问题
指针回滚
- 指针回滚、查看当前内容 (reset:重置)
git reset --soft HEAD~1 # 回退到前一个提交,保留更改
git reset --mixed HEAD~1 # 回退到前一个提交,保留更改但不在暂存区
git reset --hard HEAD~1 # 回退到前一个提交,丢弃所有更改
代码回滚并创建提交记录
- 撤销特定提交的更改并创建新提交 (revert: 回复)
git revert <commit-SHA>
应用场景
- 想要会退到包含
测试git3代码如何实践.
7000543 HEAD@{11}: commit: 测试git5
b43209f HEAD@{12}: commit: 测试git4
38072e1 HEAD@{13}: commit: 测试git3
0089eaa HEAD@{14}: commit: 测试git2
bde05f9 HEAD@{15}: commit: 测试git1
git revert b43209f
问题三、git提交多个文件夹时,某些文件夹未被提交
- 查看未被提交的文件夹是否有
.git文件,有的话请删除 - 若没有,请执行
删除git 本地缓存命令
rm -r --cached 文件名称
- 从新执行add/commit/push命令 即可
问题四、如何从新书写commit提交的信息
如下有三个commit提交信息,想要修改不规范的提交记录
- 执行
git reflog查看提交日志
c618c10 HEAD@{9}: commit: --删除修改3
2cbabee HEAD@{10}: commit: --删除修改2
9c74a36 HEAD@{11}: commit: --删除修改1
想删除前面的--如何实现?
- 执行
git rebase -i HEAD~3
- 可以看到如下日志信息
- 将想要修改的commit日志前面的
pick改成reword然后保存 (同linux命令中的vim)
- 保存之后, 会对应按顺序弹出COMMIT日志内容,如果有俩个reword 会弹出俩次,手动进行修改即可
- 然后再次执行 git log 查看是否修改成功。git push 提交
问题五、报错 [rejected] master -> master (non-fast-forward)”
原因:本地代码跟远程代码不是同步最新的, 本地代码落后远程master的代码, 解决方案:强制更新远程代码
git pull origin master --allow-unrelated-histories
//把远程仓库和本地同步,消除差异
git add .
git commit -m '***'
git push origin master