Purp1eの知识小站 Purp1eの知识小站
分类
标签
归档
关于
GitHub (opens new window)

Purp1e

取法于上,仅得为中
分类
标签
归档
关于
GitHub (opens new window)
  • QtCreator中使用Git(GitHub)做项目源代码管理和up-to-date src refspec等问题踩坑

    • 准备
      • 配置Git Bash秘钥
        • 添加本机秘钥
          • Qt Creator中的设置
            • Qt Creator中的Git操作
            Purp1e
            2020-01-17
            Qt
            目录

            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右键选项消失的问题。下面会详细说明所有的步骤,参考的文章有:文章一 (opens new window) 文章二 (opens new window) 文章三 (opens new window) Git右键菜单 (opens new window)


            # 准备

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

            # 配置Git Bash秘钥

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

            C:\Users\Administrator\
            
            1

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

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

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

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

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

            使用以下指令生成秘钥:

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

            打开C:\Users\Administrator\.ssh,打开id_rsa.pub并复制其中的秘钥内容。

            # 添加本机秘钥

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

            设置SSH秘钥.png

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

            复制Repo的URL.png

            # Qt Creator中的设置

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

            设置Git路径.png

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

            E:\QtTest\Notepad\Notepad
            
            1

            可以手动打开该位置右键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
            
            1
            2
            3
            4

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

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

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

            git commit -am "提交信息"
            
            1

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

            git push origin master
            
            1

            # Qt Creator中的Git操作

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

            QT Creator中的Git操作.png

            下载Pull:

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

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

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

            待整理其他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
            
            
            1
            2
            3
            4
            5
            6
            7
            8
            9
            10
            11
            12
            13
            14
            15
            16
            17
            18
            19
            20
            21
            22
            23
            24
            25
            26
            27
            28
            29
            30
            31
            32
            33
            34
            35
            36
            37
            38
            39
            #Qt#Git
            上次更新: 2023/12/22, 07:41:18
            最近更新
            01
            TeamSpeak服务器搭建——基于Docker-Compose
            10-03
            02
            略懂SSH——设备间安全通信
            09-07
            03
            略懂OBS——强大的推流录制工具
            09-07
            更多文章>
            Theme by Vdoing | Copyright © 2021-2025 Purp1e
            皖公网安备34012302001231 | 皖ICP备20002252号-3
            • 跟随系统
            • 浅色模式
            • 深色模式
            • 阅读模式