目录
一 ,Pull is not possible because you have unmerged files.
二 ,如何将本地的项目推送到远程gitee,gitLab,gitHub仓库
五 Key type is forbidden. Must be RSA, DSA, ECDSA, or ED25519
一 ,Pull is not possible because you have unmerged files.
本地的push和merge会形成MERGE-HEAD(FETCH-HEAD), HEAD(PUSH-HEAD)这样的引用。HEAD代表本地最近成功push后形成的引用。MERGE-HEAD表示成功pull后形成的引用。可以通过MERGE-HEAD或者HEAD来实现类型与svn revet的效果。
解决:
1.将本地的冲突文件冲掉,不仅需要reset到MERGE-HEAD或者HEAD,还需要--hard。没有后面的hard,不会冲掉本地工作区。只会冲掉stage区。
git reset --hard FETCH_HEAD
2.git pull就会成功。
二 ,如何将本地的项目推送到远程gitee,gitLab,gitHub仓库
本地新建的代码项目(java,Python,微信小程序等项目),想推送到远程gitee,gitLab,gitHub仓库,步骤如下:
- 如果没有远程仓库,先创建和本地项目名称一样的远程仓库
- 登录(gitee,gitLab,gitHub)账号,新建一个仓库(强烈建议远程仓库和本地仓库同名),创建完成后会生成了远程仓库地址
- 进入本地项目的文件目录,使用如下命令:
-
git init 将本地项目初始化为一个本地仓库 git add . 将本地项目的所有文件和文件夹添加到本地仓库的暂存区 git commit -m '初始化' 提交本地所有文件到暂存区 git remote add origin https://gitee.com/xxxx/xxxx.git 添加远程仓库关联 git push -u origin master 推送代码到远程仓库的master分支
-
如果最后一步推送报错
-
使用如下命令
-
git pull --rebase origin master
-
然后再进行上传:
-
git push -u origin master
这样的话就把本地项目推送到了远程仓库!!!
三, Git的回退操作
# 回退指定的版本
git reset --hard commitId
# 推送
git push
#强制推送
git push -f
四, 切换Git账号-用户名/密码/邮箱
# 查看用户名
git config user.name
# 查看用户账号
git config user.email
# 修改用户名和账号
git config --global user.name "userName"
git config --global user.email "userEmail"
五, Key type is forbidden. Must be RSA, DSA, ECDSA, or ED25519
有可能你是直接在 .ssh文件夹下用记事本打开并直接复制了,这样操作可能导致了识别错误。
解决办法:
打开 git bash终端,cat 查看存有id_rsa.pub的文件,然后将输出到终端的ssh秘钥复制粘贴至你的github或者gitlab中的ssh空白行即可。如图操作所示。
cat ~/.ssh/id_rsa.pub
六, git 对比两个分支差异
# 显示出branch1和branch2中差异的部分
git diff branch1 branch2 --stat
# 显示指定文件的详细差异
git diff branch1 branch2 具体文件路径
# 显示出所有有差异的文件的详细差异
git diff branch1 branch2
# 查看branch1分支有,而branch2中没有的log
git log branch1 ^branch2
# 查看branch2中比branch1中多提交了哪些内容
git log branch1..branch2
# 注意,列出来的是两个点后边(此处即dev)多提交的内容。
# 不知道谁提交的多谁提交的少,单纯想知道有什么不一样
git log branch1...branch2
# 在上述情况下,在显示出每个提交是在哪个分支上
git log -lefg-right branch1...branch2
# 注意 commit 后面的箭头,根据我们在 –left-right branch1…branch2 的顺序,左箭头 < 表示是 branch1 的,右箭头 > 表示是branch2的。
七, 解决mac终端不显示git分支信息
# 编辑.bashrc文件
function git_branch {
branch="`git branch 2>/dev/null | grep "^\*" | sed -e "s/^\*\ //"`"
if [ "${branch}" != "" ];then
if [ "${branch}" = "(no branch)" ];then
branch="(`git rev-parse --short HEAD`...)"
fi
echo " ($branch)"
fi
}
export PS1='\u@\h \[\033[01;36m\]\W\[\033[01;32m\]$(git_branch)\[\033[00m\] \$ '
# 保存刷新
source ./.bashrc