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. 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;