Q1. 本地分支和远程分支建立追踪关系的三种方式
https://blog.csdn.net/qq_42780289/article/details/97762596
Q2. pull或者merge 其他分支到当前分支时,报错:You have not concluded your merge (MERGE_HEAD exists). Please, commit your changes before you can merge.
Root Cause:
当前分支中存在修改但未提交的文件,merge时产生冲突
Solution 1:中止合并,保留当前的最新code
git merge --abort
//删除 vim 非正常关闭产生的文件
rm .git/.MERGE_MSG.sw*
Solution 2:HEAD 回滚到merge前的版本,临时态和暂存区修改会被清理。
// 查看当前branch有哪些版本号
git log
git reset --hard [当前分支最新version]
Q3. 执行git status命令时,提示“Changes not staged for commit”,什么意思?
Root Cause:
存在修改但未提交到暂存区的文件
文件状态一共有4种:
临时态,即修改ing的文件;
暂存区,存放修改后待提交的文件,需add;
本地仓库,存放确认并修改后的文件,需commit;
远程仓库,存放公共文件用于大家share,需push.
Q4. 执行git branch -d [branch name], 报错 “error: The branch ‘**’ is not fully merged.”
Root Cause:
待删除的本地分支中存在未merge到远程仓库的文件时。
Solution 1:merge本地更改后再重新提交命令
Solution 2:强制删除,此时未merge的文件会丢失
命令行 git branch -D [branch name]
Q5. 如何退出Git diff command
Root Cause:
使用Git diff 命令,会显示文件不同的具体内容,有时候信息量太大,看到一半想退出咋办?
Solution:按一下你手下键盘上的小q就欧啦。
Q6. Permission denied (publickey). Fatal: Could not read from remote repository.
Root Cause:当前主机尚未得到GitHub的认可。
Solution:使用 ssh(SSH=Secure Shell) 机制使得本地主机可以和远程服务器进行连接。
Step 1 : 生成SSH密钥
Open Git Bash.exe , 输入指令 ssh-keygen -t rsa -C "[ssh name]",回车.
完成后,在c:\Users\<your_name>\.ssh 目录下会生成以下文件
id_rsa:私钥,用于识别当前电脑;
id_rsa.pub:公钥,将其设置到GitHub上,与私钥相对应,意为GitHub接受此私钥即当前电脑。
Step 2 : GitHub添加SSH公钥
click头像,进入settings -> SSH and GPG Keys -> New SSH key;
copy id_rsa.pub 文件中的内容,paste到Key;