使用qtcreator中的git_QtCreator中使用Git(GitHub)做项目源代码管理和up-to-date src refspec等问题踩坑...

Qt Creator中包含了Git相关工具,为了更好地管理即将编写的项目的源代码,笔者决定配置好Git相关设置,过程中踩了一些坑,比如git push时出现Everything up-to-date、error: src refspec master does not match any问题,Git GUI Here右键选项消失的问题。下面会详细说明所有的步骤,参考的文章有:文章一 文章二 文章三 Git右键菜单

准备

需要用到Git,Qt,笔者的版本是5.14,还有一个GitHub账号且创建好一个项目(repository),软件安装和GitHub创建的基本操作省略。

配置Git Bash秘钥

第一步要设置秘钥,对项目的每一次修改都应该有修改者的相关信息,所以要把秘钥设置好。打开Git Bash,方法有很多,可以ctrl+s调出搜索栏并输入git打开,这里的路径是用户的根目录,之后创建的.ssh文件夹也在该位置,如:

C:\Users\Administrator\

实际用户名往往不同,位置都是类似的。

比如邮箱和用户名分别为jianshu 和 123456789@mail.com,则应分别输入以下两条指令:

git config --global user.name "jianshu"

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

检查设置是否正确,分别输入:

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并复制其中的秘钥内容。

添加本机秘钥

如图设置好SSH Keys,注意取名方便区分,比如xxx-PC,xxx-Laptop。

02cf41f38b6a

设置SSH秘钥.png

注意可以先到项目里复制好URL,在Qt Creator中要用到,建议做Git Clone时使用SSH的URL。

02cf41f38b6a

复制Repo的URL.png

Qt Creator中的设置

打开QT Creator并创建项目,菜单栏工具->选项打开选项窗口,版本控制->Git,配置Git的路径。我的Git Bash位置在C:\Program Files\Git\bin。

02cf41f38b6a

设置Git路径.png

下面要对Git仓库进行初始化,这也是第一个坑,我们在做Qt项目时往往会专门创建一个文件夹放项目文件夹(包括源代码、Debug、Release),但往往这个文件夹和存放源代码的文件夹同名,实际初始化时要在后者中进行,如

E:\QtTest\Notepad\Notepad

可以手动打开该位置右键Git Bash Here、直接打开Git Bash并CD过去,或者在Qt Creator中工具->Git->创建仓库,以下是创建时用到的指令,分别输入(注意用到了之前复制的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

至此会把初始化Repo创建的README.md等文件pull下来,但在push上传时遇到了第二个坑:Everything is up-to-date,直接Git push并没有效果,在网页上查看也没有任何变化,这是因为git不只是单单push一步完成,push前需要add、commit若干次,最后确认无误后才push。故:

git add .

git commit -m "提交信息"

或者用一条指令完成,其中提交信息用于标识本次commit做了什么。

git commit -am "提交信息"

最后push,从GitHub网页端检查是否有变化。

git push origin master

Qt Creator中的Git操作

配置好上面一切后,就可以在工具->Git处做一些常规的Git操作,不过标签tag等其他命令还是得进入命令行。

02cf41f38b6a

QT Creator中的Git操作.png

下载Pull:

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

上传Commit+Push(务必commit否则还会出现up-to-date或src refspec错误):

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

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

待整理其他git相关指令

git clone URL

git status -s

//分支管理

//创建分支

git branch branchName

//切换分支

git checkout branchName

//新建分支并切换到该分支 代替上面两条指令

git checkout -b branchName

//合并分支

git merge branchName

//合并常伴冲突 需要手动修改冲突的地方 再次提交(commit) 显示冲突

git diff

//删除分支

git branch -d branchName

//比如想为项目发布一个"1.0"版本。 我们可以用以下命令给最新一次提交打上"v1.0"的标签

git tag -a v1.0

//查看标签

git tag

//删除标签

git tag -d v1.1

//查看标签信息

git show v1.0

//查看提交历史 可以得到commit编号 追加标签

git log --decorate

//追加标签

git tag -a v0.9 85fc7e7

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值