QtCreator中使用Git(GitHub)做項(xiàng)目源代碼管理和up-to-date src refspec等問題踩坑

Qt Creator中包含了Git相關(guān)工具,為了更好地管理即將編寫的項(xiàng)目的源代碼,筆者決定配置好Git相關(guān)設(shè)置,過程中踩了一些坑,比如git push時(shí)出現(xiàn)Everything up-to-date、error: src refspec master does not match any問題,Git GUI Here右鍵選項(xiàng)消失的問題。下面會(huì)詳細(xì)說明所有的步驟,參考的文章有:文章一 文章二 文章三 Git右鍵菜單


準(zhǔn)備

需要用到Git,Qt,筆者的版本是5.14,還有一個(gè)GitHub賬號且創(chuàng)建好一個(gè)項(xiàng)目(repository),軟件安裝和GitHub創(chuàng)建的基本操作省略。

配置Git Bash秘鑰

第一步要設(shè)置秘鑰,對項(xiàng)目的每一次修改都應(yīng)該有修改者的相關(guān)信息,所以要把秘鑰設(shè)置好。打開Git Bash,方法有很多,可以ctrl+s調(diào)出搜索欄并輸入git打開,這里的路徑是用戶的根目錄,之后創(chuàng)建的.ssh文件夾也在該位置,如:

C:\Users\Administrator\

實(shí)際用戶名往往不同,位置都是類似的。

比如郵箱和用戶名分別為jianshu123456789@mail.com,則應(yīng)分別輸入以下兩條指令:

git config --global user.name "jianshu"
git config --global user.email "123456789@mail.com"

檢查設(shè)置是否正確,分別輸入:

git config --global user.name
git config --global user.email

使用以下指令生成秘鑰:

ssh-keygen -t rsa -C "123456789@mail.com"

打開C:\Users\Administrator\.ssh,打開id_rsa.pub并復(fù)制其中的秘鑰內(nèi)容。

添加本機(jī)秘鑰

如圖設(shè)置好SSH Keys,注意取名方便區(qū)分,比如xxx-PC,xxx-Laptop。

設(shè)置SSH秘鑰.png

注意可以先到項(xiàng)目里復(fù)制好URL,在Qt Creator中要用到,建議做Git Clone時(shí)使用SSH的URL。

復(fù)制Repo的URL.png

Qt Creator中的設(shè)置

打開QT Creator并創(chuàng)建項(xiàng)目,菜單欄工具->選項(xiàng)打開選項(xiàng)窗口,版本控制->Git,配置Git的路徑。我的Git Bash位置在C:\Program Files\Git\bin。

設(shè)置Git路徑.png

下面要對Git倉庫進(jìn)行初始化,這也是第一個(gè)坑,我們在做Qt項(xiàng)目時(shí)往往會(huì)專門創(chuàng)建一個(gè)文件夾放項(xiàng)目文件夾(包括源代碼、Debug、Release),但往往這個(gè)文件夾和存放源代碼的文件夾同名,實(shí)際初始化時(shí)要在后者中進(jìn)行,如

E:\QtTest\Notepad\Notepad

可以手動(dòng)打開該位置右鍵Git Bash Here、直接打開Git Bash并CD過去,或者在Qt Creator中工具->Git->創(chuàng)建倉庫,以下是創(chuàng)建時(shí)用到的指令,分別輸入(注意用到了之前復(fù)制的URL):

git init
git remote add origin https://github.com/Notepad/Notepad.git
git pull origin master --allow-unrelated-histories
git push --set-upstream origin master

至此會(huì)把初始化Repo創(chuàng)建的README.md等文件pull下來,但在push上傳時(shí)遇到了第二個(gè)坑:Everything is up-to-date,直接Git push并沒有效果,在網(wǎng)頁上查看也沒有任何變化,這是因?yàn)間it不只是單單push一步完成,push前需要add、commit若干次,最后確認(rèn)無誤后才push。故:

git add .
git commit -m "提交信息"

或者用一條指令完成,其中提交信息用于標(biāo)識本次commit做了什么。

git commit -am "提交信息"

最后push,從GitHub網(wǎng)頁端檢查是否有變化。

git push origin master

Qt Creator中的Git操作

配置好上面一切后,就可以在工具->Git處做一些常規(guī)的Git操作,不過標(biāo)簽tag等其他命令還是得進(jìn)入命令行。

QT Creator中的Git操作.png

下載Pull:

工具->Git->Remote Repositories->push

上傳Commit+Push(務(wù)必commit否則還會(huì)出現(xiàn)up-to-date或src refspec錯(cuò)誤):

工具->Git->Local Repositories->commit
工具->Git->Remote Repositories->push

待整理其他git相關(guān)指令

git clone URL

git status -s

//分支管理

//創(chuàng)建分支
git branch branchName

//切換分支
git checkout branchName
//新建分支并切換到該分支 代替上面兩條指令
git checkout -b branchName

//合并分支
git merge branchName
//合并常伴沖突 需要手動(dòng)修改沖突的地方 再次提交(commit) 顯示沖突
git diff

//刪除分支
git branch -d branchName

//比如想為項(xiàng)目發(fā)布一個(gè)"1.0"版本。 我們可以用以下命令給最新一次提交打上"v1.0"的標(biāo)簽
git tag -a v1.0

//查看標(biāo)簽
git tag

//刪除標(biāo)簽
git tag -d v1.1

//查看標(biāo)簽信息
git show v1.0

//查看提交歷史 可以得到commit編號 追加標(biāo)簽
git log --decorate
//追加標(biāo)簽
git tag -a v0.9 85fc7e7

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容