小白都看得懂的git代码仓库管理手册

这篇具有很好参考价值的文章主要介绍了小白都看得懂的git代码仓库管理手册。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

由于个人记性不怎么好,对于版本控制工具的使用也不怎么常用,对于一些命令的使用参照各个博客,仅做个人记录。
2022-08-28 :经过了这么久的拖延,今天终于下定决心好好更新一下关于git操作的内容,因为自己也是通过诸多前辈的文章和视频,逐步摸索出一套git使用方案,从最基础的开始,再到项目基本使用,最后就是较为成熟和完善的团队协作开发。


首先理解代码仓库之间的关系

追踪和未追踪:针对的是工作区文件的一个状态,追踪则表示文件被git纳入版本控制,未追踪则表示文件没有被git纳入版本控制。可以通过git add命令添加文件到暂存区进行跟踪。

远程代码仓库应该是我们最好理解的一个内容了,对应着一个云端的文件存储,通过git命令结合身份认证,能够将我们本地的代码(文本、图片等等)上传到一个服务器上【push】,即github或gitee。出了上传我们也能够下载回来【pull】。同时平台对于服务于无数个用户,对应的将代码存放容器命名为仓库,同时也拓展了仓库的一系列功能。

本地代码管理分为工作区、暂存区、本地仓库三部分。
小白都看得懂的git代码仓库管理手册

工作区:我们打开项目的时候,一侧菜单文件目录中的所有内容就是我们的工作区,在这里我们可以进行增、删、改等操作,需要注意的是这里面不包括我们的.git隐藏文件夹内容。
小白都看得懂的git代码仓库管理手册
小白都看得懂的git代码仓库管理手册

暂存区:暂存区是一个很有意思的设置,位于.git目录下隶属于我们工作区和本地仓库的中间过渡件,它里面的内容既不是我们原本的代码,也不是我们修改后的代码,它是作为一个日志一样的存在,记录了我们所有在工作区的改动,包括文件、代码的增删改、重命名。暂存区存在最大的意义是记录了发生变化前后的部分状态,而不是直接存储前后两份文本,这显然是不合理的。
小白都看得懂的git代码仓库管理手册
小白都看得懂的git代码仓库管理手册

本地仓库:通过【commit】将暂缓区内的代码状态同步到本地仓库作为备份,形成一个版本,该版本保存了所有暂缓区内修改后的代码,是一个同步的、工作区某一个时刻的全部代码。

本地代码仓库搭建、远程仓库连接

下载git并配置环境

git的安装和配置文章有很多,小伙伴们可以参考:git的安装

这部分需要牢记的是如下几个命令:

git config --local -l #查看仓库级别的配置 优先级高
git config --global -l #全局环境下的配置信息 包括user.name和user.email两部分。优先级较高
git config --system -l #系统环境下的配置信息。优先级低

本地git环境已经配置的操作

小白都看得懂的git代码仓库管理手册
小白都看得懂的git代码仓库管理手册

方式一的代码:

echo "# project_1" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin https://github.com/Super-chen-big/project_1.git
git push -u origin main

方式二的代码:

git remote add origin https://github.com/Super-chen-big/project_1.git
git branch -M main
git push -u origin main

小白都看得懂的git代码仓库管理手册

  • 需要注意的是以前创建的仓库主分支名字变为了main,不再是master了

git branch -M main 即将当前分支名称更改为main。
小白都看得懂的git代码仓库管理手册

  • 将本地仓库与远程仓库关联
    注意本地仓库和远程仓库的关联和本地分支与远程分支是完全不一样的
git remote add origin 远程仓库地址

小白都看得懂的git代码仓库管理手册

  • 将本地代码仓库分支关联到远程仓库分支 push操作

我们要想将本地分支推送到远程仓库中,在远程仓库就必须有一个分支和本地分支关联起来。通过 git push -u <远程仓库名> <本地分支名> 即可完成,这条命令在远程仓库创建一个与本地分支同名的分支,并且将本地仓库分支和远程仓库分支关联起来,同时将本地仓库中分支的内容推送到远程仓库分支!

小白都看得懂的git代码仓库管理手册

代码仓库相关指令操作

一个基本提交流程以及说明。

红色表示工作区有修改,但是没有提交到暂存区。需要git add指令来操作
绿色表示暂存区内存在没有同步到本地仓库的内容。需要git commit指令来操作
灰色的(use git push to publish your local commits)表示本地仓库有改变,即生成了一个新的版本,需要通过git push命令来同步到远程仓库。再次查询状态时,状态会变为nothing to commit, working tree clean

小白都看得懂的git代码仓库管理手册

将工作区修改同步到暂存区

  • 当前路径下所有更改同步到暂存区
git add .
  • 不管当前位于工作区的那个路径下,都将工作区所有的变化同步到暂存区
git add --all
  • 加上了参数-u表示的意思是在git add .前提下,做了一个同步筛选,即要求是已跟踪文件中的删改,不包括新增加的文件。
git add -u .

  • 参数-A表示将所有的已跟踪的文件修改和删除和新增的未跟踪的文件都添加到暂存区。
git add -A .
  • 将某个文件类型的文件都添加到暂存区
git add *.html

区别git add . 和git add *;git add . 会把本地所有untrack的文件都加入暂存区,并且会根据.gitignore做过滤,但是git add * 会忽略.gitignore把任何文件都加入

暂存区内容提交到本地代码仓库

参照前辈在博客里的描述: git commit 主要是将暂存区里的改动给提交到本地的版本库。每次使用git commit 命令我们都会在本地版本库生成一个40位的哈希值,这个哈希值也叫commit-id,commit-id在版本回退的时候是非常有用的,它相当于一个快照,可以在未来的任何时候通过与git reset的组合命令回到这里。

  • 将本地暂存的修改同步到本地仓库,git commit 也可以通过vim编辑器来编辑并提交内容
git commit -m "说明内容"
  • 从工作区直接一步到位,同步到本地仓库。
git commit -a -m "信息内容"
  • 通过vim修改上一次的提交信息,但是需要注意commitId发生改变,再次提交会出现不同步的错误,可以加上-f强制合并提交。除此之外,可以将将最近的修改追加到上一次提交上,即commitid不变。这个指令的意义是出于一些比较小的改动不再重现创建一个commit。
git commit --amend

提交到远程仓库

参考了博客:git push 详解
参照下面这个命令格式,我们将常用的push命令及其含义罗列一遍。

git push <远程主机名> <本地分支名>:<远程分支名>
  • 将本地分支推送到与之存在追踪关系的远程分支,如果该远程分支不存在,则会被新建。
git push origin master #将本地的master分支推送到origin主机的master分支,不存在则新建。
  • 只省略本地分支名进行推送的话,相当于推送了一个空的本地分支去覆盖远程分支,等同于删除远程分支。
git push origin :main #等同于git push origin --delete master
  • 如果当前分支和远程分支间存在追踪关系,则可以简化提交命令,可以省略本地分支和远程分支,一般是分支同名的追踪关系
git push origin
  • 如果当前分支只有一个追踪分支,那么主机名都可以省略
git push
  • 如果当前分支与多个主机存在追踪关系,则可以使用-u选项指定一个默认主机,这样后面就可以不加任何参数使用git push。
git push -u origin master

远程分支

强烈推荐大家去看一看这一篇博客:git命令及git合并分支进行多人协作

git branch -r #列出所有远程分支。
git branch -a #列出所有分支。
git branch -vv #列出本地分支和远程分支的映射信息

查看远程仓库所有分支列表

git remote show origin

将远程仓库分支下载到本地分支:默认将自动切换分支

git checkout 远程分支名称

拉取当前分支在远程仓库对应分支最新文件内容

git pull

删除远程仓库指定分支

git push 远程仓库名称 --delete 远程分支名称

本地分支

参考博客:git 创建本地分支 切换本地分支 合并本地分支
查看本地分支

git branch

查看远程分支

git branch -r

查看所有分支,包括本地和远程分支

git branch -a

创建本地分支

git branch <branchName>

切换本地分支

git checkout <branchName>

创建一个分支并切换到该分支

git checkout -b <branchName>

合并某分支到当前分支

git merge <branchName>

删除分支:只能删除非当前分支,和已经合并过的分支

git branch -d <branchName>

强制删除对应分支,哪怕他是没有经过合并的分支

git branch -D <branchName>

日志查看

  • 显示日志详情
git log
  • 只显示日志中commitid和message
git log --pretty=oneline
  • 紧接着上一个指令,-n即显示出前n行。
git log --pretty=oneline -2

对比查看工作区、暂存区、本地仓库

git diff 查看工作区与暂存区的差别:必须是已经跟踪了的文件,即提交到暂存区的文件

git diff

查看工作区和本地仓库的差别:必须是已经跟踪了的文件

git diff HEAD

查看暂存区与本地仓库的差别 :必须是已经跟踪了的文件

git diff --cached

补充内容

git fetch和git pull的区别

  • git fetch仅仅是将远程仓库的更新拉取到本地仓库,更新本地仓库中对远程仓库的引用等信息,同时会生成FETCH——HEAD文件保存对应远程分支的最新提交记录的值。即git fetch 只会拉取远程仓库的更新,但是不会将其合并到本地。
  • git pull 将远程仓库的更新拉取下来并自动进行合并操作。
    一般更建议先使用 git fetch拉去更新,然后再用git merge合并,这样可以考虑是否要将远程仓库合并到我们本地。

创建新的本地分支,切换本地分支,进行开发的时候,所遇到的代码版本问题

经过我的实际操作验证,得出结论。我们在创建代码分支的时候,相当于对之前分支代码进行了一次快照,我们在新分支上的一切更改,与原分支无关,这一点我们在切换分支的时候可以看到,工作区是不同的(新分支上,我新增了一个文件,切换回原分支的时候,文件消失。和之前的快照一样。)所以不需要担心代码隔离的问题。

关于使用git merge和git rebase的区别问题

相同点:都可以合并代码
不同点:
1.通过merge合并分支会新增一个merge commit,然后将两个分支以前的commit记录都指向这个新的commit,是一种非破坏性的操作,保留之前的每个分支的commit,现有分支不会被更改,但是会导致历史记录相对复杂。
2.rebase会先找到两个分支的第一个共同的commit祖先记录,提取在这之后的所有commit记录,将这些记录添加到目标分支的最新提交后面,变成了线性的记录,有效整合所有分支上的提交;主要好处是历史记录清晰,是在原有提交的基础上将差异内容反映出来,消除了git merge带来的不必要的合并提交。
3.rebase操作后会丢弃当前分支已经提交的commit,所以不要在已经push到远程以及和其他人正在协作开发的分支上执行rebase操作文章来源地址https://www.toymoban.com/news/detail-409868.html

到了这里,关于小白都看得懂的git代码仓库管理手册的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 零基础也能看得懂的AI绘画教程!灵魂画师MJ咒语案例展示!

    当谈到人工智能技术应用场景时,除了ChatGPT,另外让人着迷的应用就是AI绘画,随着图像生成器的不断升级和更迭,图片生成的质量也得到了显著提升。 目前画图支持Midjourney和Stable Diffusion,风景、人物、动物、建筑、梦境等等,都可以用MJ和SD生成,同聊天一样,只有掌握正

    2024年04月23日
    浏览(57)
  • 想要成为 NLP 领域的大牛?从 ChatGPT 的 5 大自然语言模型开始了解吧(LM、Transformer、GPT、RLHF、LLM)——小白也能看得懂

      如果想在自然语言处理(Natural Language Processing,NLP)领域内脱颖而出,那么你一定不能错过 ChatGPT 的 5 大自然语言模型:LM、Transformer、GPT、RLHF 和 LLM。这些模型是 NLP 领域中最为重要的基础,涵盖了 语言模型、预训练模型、生成模型 等关键知识点。即使你是一个 NLP 小白

    2024年02月09日
    浏览(50)
  • GLSL基础概念(绝对看得懂)

    GLSL(OpenGL Shading Language)是一种用于描述顶点和片元着色器的语言。它是一种 C 语言的变体,专门为 OpenGL 和其他着色器渲染系统而设计。 在渲染图形时,主程序会将顶点数据发送到 GPU,然后 GPU 会使用图形着色器来计算每个像素的最终颜色。图形着色器的输入是顶点数据,

    2024年02月01日
    浏览(52)
  • 【可乐荐书】有趣的矩阵:看得懂又好看的线性代数

    本栏目将推荐一些经典的、有趣的、有启发性的书籍,这些书籍涵盖了各个领域,包括文学、历史、哲学、科学、技术等等。相信这些书籍不仅可以让你获得知识,还可以让你感受到阅读的乐趣和魅力。 今天给大家推荐的书籍是:《有趣的矩阵:看得懂又好看的线性代数》

    2024年02月05日
    浏览(57)
  • verilog 从入门到看得懂---verilog 的基本语法数据和运算

            笔者之前主要是使用c语言和matab 进行编程,从2024年年初开始接触verilog,通过了一周的学习,基本上对verilog 的语法有了基本认知。总统来说,verilog 的语法还是很简单的,主要难点是verilog是并行运行,并且强烈和硬件实际电路相关,在设计到的时候需要考虑时序

    2024年03月18日
    浏览(48)
  • 小白推荐|使用git建立自己的代码仓库

    版本控制工具,用于团队协作与项目管理 step1:进入git下载官网Git for Windows step2:点击Download step3:打开下载好的文件,按照下面图片一步一步安装 剩下的一直点Next就完事了!!!看到下面这个界面,点击Finsh,完成安装 step4:检查电脑是否安装成功 Win+R快捷键启动运行,输入

    2024年02月09日
    浏览(36)
  • 【代码管理】Git删除仓库中的大文件压缩仓库大小

    Git 仓库中有时会不小心加入了一些大文件,例如模型文件,视频文件 模型文件有可能以 .weights 结尾,或者 .onnx 结尾等等 视频文件有可能以 .avi 结尾,或者 .mp4 结尾 大文件如果一直在仓库中,仓库体积会非常大,下面我们提供一个脚本,专门用于清理 仓库中的文件使用。

    2024年04月26日
    浏览(38)
  • 局域网搭建Git代码版本管理仓库

    零、前期准备 前期准备: 1、 准备两个电脑, 一个远程PC , 一个本地PC 2、 本地PC安装git小乌龟 ( TortoiseGit) 一、局域网建立共享文件夹 1、 远程PC建立共享文件夹 远程PC新建一个名字叫做share的文件夹 右键打开属性界面 选择共享 选择Everyone 点击添加 点击共享 二、创建版本

    2024年02月07日
    浏览(38)
  • 使用Git命令行推送代码到远程仓库,阿里云效Codeup代码管理平台

    【本步骤是新项目流程】请自行根据自有项目分辨是否需要跳过前两步。 右键点击项目根文件夹,选中Git Bash Here,打开命令行。 (1)初始化项目命令: git init  (此时可以看到项目生成了一个.git文件夹) (2)连接远程仓库:git remote add origin + SSH地址   (3)查看文件状态

    2024年02月06日
    浏览(59)
  • 【Git小白使用教程,一看就会用,快速上手Git(二——建立本地仓库和对Gitee或GitHub远程仓库的拉取和推送】

    1.1、先在本地创建一个文件夹用作本地仓库,里面可以放你的项目代码或者你想要上传到远程仓库的文件。 1.2、然后在文件夹内通过cmd打开终端命令行 git init ——初始化本地仓库,运行成功后,文件夹内会出现一个.git文件 也可以在文件夹内右击鼠标,选择git bash打开git命令

    2024年02月04日
    浏览(74)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包