GIT无法Clone仓库到本地
- 错误信息:error: RPC failed; HTTP 302 curl 22 The requested URL returned error: 302
fatal: the remote end hung up unexpectedly
问题的原因的: http.followRedirects 不能自动跳造成的。
解决办法:
打开git bash输入如下内容:
git config --global http.https://xxx.xxx.git.followRedirects "true"
其中,需要把: https://xxx.xxx.git 改成你要 clone 的网址, 比如: https://gitee.xxx.git
如何 合并其它仓库到自己的仓库并保留其提交历史
- 合并Git仓库A的分支master到Git仓库B的名为MergeFrmA分支,并保留A的所有提交记录
主要步骤如下:
1.切换到要合并到的仓库(即仓库B)的MergeFrmA
2.在仓库A的所在目录中打开git bash,假设仓库A的地址为https://gitee.com/projectA.git,则在git bash中输入如下内容:
git remote add master https://gitee.com/projectA.git
git fetch --all 或者:git pull https://gitee.com/projectA.git
fetch仅是下载到本地做为一个独立分支,没有合并,需要手动合并一下再提交;pull则是直接与当前分支进行了合并;
处理完后,可以使用gitgui或sourcetree或者命令行来提交该合并到仓库B的服务端;
如何删除远端仓库的某次提交
# 重置至指定版本,即本地仓库commit的ID
# --soft:保留当前工作区,以便重新提交。--hard:会撤销相应工作区的修改,谨慎使用。
git reset --hard commitID
# 然后可以再使用:git log,查看重置是否成功
#commitID可以是完整的ID,也可以是缩略的ID(中括号中的ID值为缩略值)
# 强制推送,即远程仓库push的取消。参数force是必须的,否则报错:本地项目版本号低于远端仓库版本号
git push --force
#这样就会把该提交之后的(也就是比日期更新的)给清除掉(注意:不可恢复式的清除),使该次提交成为仓库中最新的一次提交;
修改本地或无端分支名称
假设分支名称为oldName
想要修改为 newName
1. 本地分支重命名(还没有推送到远程)
git branch -m oldName newName
2. 远程分支重命名 (已经推送远程-假设本地分支和远程对应分支名称相同)
a. 重命名远程分支对应的本地分支
git branch -m oldName newName
b. 删除远程分支
git push --delete origin oldName
c. 上传新命名的本地分支
git push origin newName
d.把修改后的本地分支与远程分支关联
git branch --set-upstream-to origin/newName