免费个人网站怎么建立,谁有好的网站推荐一个,怎么设置网站名称,网站建设商业【本节目标】 1. 掌握简单gdb使用于调试 2. 学习 git 命令行的简单操作, 能够将代码上传到 Github 上 1.Linux调试器-gdb使用
1.1.背景
程序的发布方式有两种#xff0c;debug模式和release模式release模式不可被调试#xff0c;debug模式可被调试Linux gcc/g出来的二进制…
【本节目标】 1. 掌握简单gdb使用于调试 2. 学习 git 命令行的简单操作, 能够将代码上传到 Github 上 1.Linux调试器-gdb使用
1.1.背景
程序的发布方式有两种debug模式和release模式release模式不可被调试debug模式可被调试Linux gcc/g出来的二进制程序默认是release模式要使用gdb调试必须在源代码生成二进制程序的时候, 加上 -g 选项
为什么要有debug模式和release模式两种模式呢这两种模式的存在是为了在不同阶段和用途下提供不同的编译和运行配置。 Debug 模式主要用于开发和调试阶段以提供更好的可读性和调试能力而 Release 模式则用于最终部署面向用户的就是该版本且该版本能提供更好的性能和减小可执行文件的体积。Debug 模式形成的可执行程序会添加调式信息Release 模式形成的可执行程序会去掉调式信息。对于用户来说用户不需要调式信息用户只在乎下载速度和安装文件大小。对于程序员来说程序员需要改bug因此需要调式信息才能修正bug于是就出现了两种模式。
1.2. 开始使用
我们首先写个程序方便后面调试样例
#includestdio.h
int Sum(int n)
{int i 1;int sum 0;for (; i n; i){sum i;}return sum;
}
int main()
{int result Sum(100);printf(%d\n, result);return 0;
}
然后再将我们的makefile文件写好。 然后我们来编译一下我们上面的代码上面的代码是求从1加到100的和可以看到我们的程序是正确的。 接下来就开始我们的调试程序 但是我们发现此时我们不能进行调试因为此时是release版本是不可被调试滴。 为了区分两种模式下的可执行程序将Debug版本下的可执行程序加上-d此时经过修改之后。 我们可以清楚的看到两个模式下的可执行程序的文件大小刚好可以验证我们上面的结论。通过文件大小能验证Debug确实增加了调式信息但是我们想看到更详细的调试信息。
readelf 是一个用于读取 ELFExecutable and Linkable Format可执行和可链接格式文件的命令行工具。ELF 是一种用于在Unix和类Unix系统上执行程序的标准文件格式。readelf 工具允许用户查看 ELF 文件的内部结构、头部信息、节sections、程序头部、符号表等内容。
该工具通常在开发和调试过程中使用以便分析可执行文件或共享库的细节了解它们的结构和元数据。通过 readelf用户可以获取关于 ELF 文件的各种信息例如代码段和数据段的大小、链接地址、节头表、符号表等。 然后我们在删除刚刚两个版本的文件重新make一个Debug模式的可执行程序mytest文件然后开始调试mytest文件。 gdb调试相关指令学习 - 平替 - vs上的调试 gdb binFile 退出 ctrl d 或 quit 调试命令 2. 学习 git 命令行的简单操作, 能够将代码上传到 Github 上
2.1.什么是git理解版本控制器
git是一个分布式版本控制系统用于跟踪项目代码的变化。
版本控制器Version Control SystemVCS是一种记录和管理文件或代码变更的系统。它追踪文件的历史变更允许用户回溯到先前的状态并支持多人协同开发。
2.2.什么是github/gitee GitHubGitHub是一个基于Git的代码托管平台提供了代码仓库的托管服务。开发者可以将他们的项目代码存储在GitHub上并与团队成员协同工作。GitHub也提供了许多协作和社交功能如问题跟踪、代码审查、项目管理等使得团队协作更加便捷。
GiteeGitee码云是中国的一个类似GitHub的代码托管平台同样基于Git。它提供了类似的代码仓库托管服务并支持团队协作。Gitee也提供了一些特有的功能以满足中国开发者的需求如在线构建、镜像仓库等。
总的来说Git是版本控制系统而GitHub和Gitee是基于Git的代码托管平台它们提供了一些额外的功能来帮助开发者更好地进行协同开发。
2.3.使用 git 命令行
安装git - 必须先安装指令
yum install -y git
由于github是国外的网站我们访问起来速度较慢于是这里使用gitee作为我们的样例。
在 Github 创建项目
No.1注册自己的gitee账号然后进入自己的个人主页点击右上角的号点击新建仓库 No.2在进入创建的仓库界面后设置仓库的名称如果我们想将该仓库分享给别人就可以设置开源初始化现在选择C语言.gitignore 是在本地仓库上传到远端仓库的时候不会上传不必要的或敏感的文件提交到代码仓库。例如编译产生的临时文件、操作系统生成的文件、一些配置文件等通常不应该包含在版本控制中而 .gitignore 文件就是告诉 git 忽略这些文件的规则这里也选择C。模板设置 Readme文件 是为了让其他开发者或用户更容易理解和使用你的项目而创建的。它可以包含项目的概述、依赖关系、配置信息、使用示例等。分支模型涉及到开发目前这个仓库只有我们一个人用所以我们这里就不需要设置了。 No.3进入到我们刚才创建的仓库点击克隆选择HTPPS复制下面的链接。 No.4git clone [url]这里的 url 就是刚刚复制好的 项目 的链接. No.5第一招git add ..代表当前目录下所有文件第二招git commit -m 提交日志信息必须好好写如果是第一次我们这里还需要输入以下两个指令
git config --global user.name gitee 用户名 git config --global user.email gitee邮箱地址
第三招git push需要填入用户名密码然后就提交到我们的远端仓库了。 图解 解释 git clone: 用途从远程仓库克隆复制整个代码库到本地。示例git clone https://github.com/example/repo.git git add: 用途将工作目录中的修改添加到暂存区为下一次提交做准备。示例git add filename将指定文件添加到暂存区或 git add .将所有修改添加到暂存区。 git commit: 用途将暂存区中的修改提交到本地仓库创建一个新的版本commit。示例git commit -m Commit message git push: 用途将本地仓库的提交推送到远程仓库。示例git push origin master将本地的 master 分支推送到远程仓库的 master 分支。
No.6提交成功到远端仓库 上面就是本地仓库提交到远端仓库的步骤。现在我们来看一下我们刚刚的提交日志信息git log 上面的图片中commit后面跟的一串是commit的ID每一次修改都有一次commit的ID于是我们就可以通过用哪个commit的ID就可以看到曾经修改的哪个版本。Author是我们刚才配置邮箱和用户名这是为了标识你是代码的提交者。这信息会被包含在每次提交中以记录是谁进行了代码的更改。这对于团队协作和代码贡献追踪非常重要。 git status 是 Git 中用于查看工作区working directory和暂存区staging area状态的命令。运行这个命令可以告诉你当前工作目录中文件的状态以及是否有文件修改未提交。
此时会显示工作目录中未被 Git 跟踪的文件和已修改的文件但不会显示任何文件已暂存staged或提交committed的状态。 这是已经通过 git add 添加到暂存区但尚未通过 git commit 提交到版本库的文件。 此时显示没有文件需要 commit 当前暂存区干净。 通过 git add push 推送到远端仓库下面是推送后的状态 删除仓库文件的步骤 此时我们还可以通过git log查看日志信息 在Git中git branch是用来管理分支的命令。
查看分支 使用git branch命令可以列出当前仓库中存在的所有分支。当前分支前会有一个星号(*)表示当前所在的分支。
git branch 通过合理使用分支可以更方便地进行代码的管理和协同开发。分支允许多个开发者在同一时间内独立地开发不同的功能或修复不同的bug而不会互相影响。每个分支都代表着一个特定的工作线开发者可以在不干扰其他工作的情况下进行自己的修改和实验最后合并到master分支能保证此时出现极少的错误。
.gitignore 是一个用于指定在版本控制系统中忽略哪些文件或目录的配置文件。在一个Git仓库中有些文件是不希望被纳入版本控制的比如编译生成的文件、临时文件、日志文件等。.gitignore 文件告诉Git哪些文件或目录应该被忽略从而不会被提交到版本库中。通过使用 .gitignore 文件你可以确保不必要的文件不会被提交到版本库中从而保持版本库的干净和有序。
现在我们来验证一下我们想设置.txt文件不被提交到远端仓库。 此时我们修改了.gitignore文件因为.gitignore也是工作区的文件也要被上传到远端仓库但是我们此时先不上传到远端仓库。 上传到远端仓库后我们创立一些文件来验证一下 然后我们使用我们的三板斧上传到远端仓库 但是我们发现.txt后缀的文件被上传到远端仓库了为什么呢这是因为在.gitignore中被忽略的文件前面加上了*这里的*就是通配符的意思这里必须要带上*表示所有后缀为.txt的文件。 我们现在才来创建文件试一试 此时我们就发现3.txt文件就没有同步到远端仓库 通过上面的样例我们可以发现.gitignore我们没有立即同步到远端仓库而也可以立即生效它是在git add的时候已经将.gitignore加载到暂存区并且此时就会过滤这些文件。当您在本地进行 git add 操作时Git 会将已跟踪的文件和新添加的文件添加到暂存区。.gitignore 文件的规则在这个阶段就会生效被指定忽略的文件将不会被包含在暂存区中。
总结
git如何进行多人协作 - 并行开发串行提交
多人协作是Git的一个强大功能以下是一般的多人协作流程 创建远程仓库 通常多人协作的项目会有一个中央远程仓库比如在GitHub、Gitee或Bitbucket上创建一个项目仓库。 每个人克隆仓库 每个团队成员将远程仓库克隆到本地使用如下命令 git clone 远程仓库URL 创建分支 为了避免直接在主分支上工作每个人都应该在本地创建一个新的分支用于开发特定的功能或修复问题。 git checkout -b 新分支名称 进行开发 每个人在自己的分支上进行开发工作。使用git add和git commit来保存更改。 git add . git commit -m 描述提交的更改 推送到远程仓库 当开发工作完成并且代码已经经过测试将本地分支推送到远程仓库。 git push origin 分支名称 合并分支 使用 pull requestGitHub、GitLab等平台或 merge 请求Bitbucket将特性分支合并到主分支。这样可以进行代码审查和确保代码质量。 更新本地仓库 每个人在开始新的工作前应该定期更新他们的本地仓库以包含其他人的更改。 git pull origin master 解决冲突 如果多人在同一部分修改了代码可能会发生冲突。在这种情况下Git 会提示您解决冲突。 产生冲突的原因是比如Windows用户此时上传了修改这个代码此时远端仓库就和这个Windows用户同步了然后Linux用户再对这个代码进行上传此时就会因为远端仓库没有和Linux用户本地仓库同步发生冲突。 所以此时就要远端仓库和Linux用户本地仓库同步git pull 用于将远程仓库的最新更改拉取到本地并合并以保持本地仓库与远程仓库同步。
git pull
此时我们就可以上传到远端仓库了我们不仅能看到Linux在本文件中修改的代码还能看到Windows用户修改的代码。所以git仓库如果本地和远端不同步此时如果想要其他用户上传到远端仓库git会强制你进行同步一旦提交成功后对于任何人此时你修改的代码会被所有人看到。
上面我们每次git push的时候都需要输入用户和密码比较麻烦我们可以配置免密码提交
https://blog.csdn.net/camillezj/article/details/55103149