Git & Github QA

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;

config SSH

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章