Acwing linux 第五讲git

这篇具有很好参考价值的文章主要介绍了Acwing linux 第五讲git。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

代码部分我给大家在最后单独整一个页面好看,正文内容里面也有大家可以一边看一用!!!!!!!!!!!!!!!!!!!!

昨天讲了ssh内容,今天讲解git,git是个灰常重要的工具,所以我要给大家先讲一下陌生的git。

先放网上解释:Git 是一种分布式版本控制系统,即,代码的本地克隆就是一个完整的版本控制存储库。 通过这些功能齐全的本地存储库,无论脱机还是远程都能轻松工作。 开发人员会在本地提交其工作,然后再将存储库的副本与服务器上的副本进行同步。 这种范例不同于集中式版本控制,后者要求客户端必须先与服务器同步代码,然后才能创建新版代码。 Git 的灵活性和受欢迎程度使其成为所有团队的绝佳选择。 很多开发人员和大学毕业生都已知道如何使用 Git。 Git 的用户社区创建了各种资源来训练开发人员,而 Git 的受欢迎程度也使得在需要时可轻松获得帮助。 几乎每个开发环境都有在各大主流操作系统上实现的 Git 支持和 Git 命令行工具

貌似有点难懂,我给大家讲个冷笑话方便一下大家的理解吧。

有一天,一个程序员走进了一家咖啡店。他打开电脑,开始写代码。突然,他的电脑屏幕变得一片漆黑。他惊慌失措,不知道发生了什么事情。

这时,一个神秘的声音在他的耳边响起:“不用担心,我在这里!” 声音的主人是一个名为“Git”的虚拟助手。

Git告诉他:“你的代码出现了一些问题,我已经帮你解决了。现在你可以继续工作了。”

程序员非常感激,问:“你是怎么做到的?”

Git回答:“很简单,我使用了一种叫做‘版本控制’的技术。我跟踪了你的代码的变化,一旦出现问题,我就可以回滚到之前的版本,或者合并新的代码。”

程序员听后恍然大悟:“原来如此!我以前一直以为‘Git’只是一个用来跟踪代码变化的工具,没想到它还能帮我解决问题!”

Git笑着说:“是的,我就是你的‘救星’!以后遇到问题,记得找我哦!”

这个笑话通过一个虚拟助手Git的形象,介绍了Git的作用——版本控制。它可以帮助程序员更好地管理代码的变化,避免出现错误和冲突。同时,Git还可以回滚到之前的版本,或者合并新的代码,从而解决代码中出现的问题。

下面我放我的笔记和部分内容的截屏,供大家理解

第五讲 git

代码托管平台:git.acwing.com

0、公钥的添加

如何获得公钥:在家目录下 ssh-keygen然后一直回车,就有公钥了

成功产生公钥后在 家目录 下的 .ssh/ 下,公钥就是id_rsa.pub

1、git基本概念

工作区:仓库的目录。工作区是独立于各个分支的。

暂存区:数据暂时存放的区域,类似于工作区写入版本库前的缓存区。暂存区是独立于各个分支的。

版本库:存放所有已经提交到本地仓库的代码版本

版本结构:树结构,树中每个节点代表一个代码版本。

Acwing linux 第五讲git,git

add可以将修改后的文件放到暂存区,文件变绿表示已经放入暂存区

每次commit后暂存区就会清空

注意删文件rm a.txt b.txt操作也是需要被可持久化并且可以被存在暂存区的(暂存区不仅可以存加文件、修改文件,也可以存删文件操作)(注意不管是加还是删都用add,add不是创建,而是将对文件的操作加到暂存区),例如

rm a.txt b.txt;然后git add a.txt b.txt;再如果git restore --staged a.txt就可以将删除a这个操作从暂存区中去除;然后git restore a.txt就可以将它复原到工作区(因此我们如果不小心将某文件删除,可以回滚);就算将删除操作可持久化commit了,也可以将指针回滚到上一个版本

2、git常用命令(本地)

1、git config --global user.name xxx:设置全局用户名,信息记录在~/.gitconfig文件中

2、git config --global user.email xxx@xxx.com:设置全局邮箱地址,信息记录在~/.gitconfig文件中

Acwing linux 第五讲git,git

Acwing linux 第五讲git,git

3、git init:将当前目录配置成git仓库,信息记录在隐藏的.git文件夹中

4、git add XX:将XX文件添加到暂存区

git add .:将所有待加入暂存区的文件加入暂存区

5、git rm --cached XX:将文件从仓库索引目录中删掉

git restore --staged <file> 与 git rm --cached <file>的区别,后者是“不希望管理某个文件”,将某个文件从管理的列表中删除(git不一定对每个文件都要管理,untracked file意思是还没有管理它),如果还想加回去,就add即可加回去前者是“我还要管理这个文件,但我只是把它从暂存区里拿了出来”

6、git commit -m "给自己看的备注信息":将暂存区的内容提交到当前分支(也就是说在上一个节点上面再产生一个新的节点,同时HEAD指针移动到这个新的节点)(注意这个备注信息是很重要的)

注意commit不一定要上传所有新修改的文件到下一个版本中;比如有两个文件都被修改了,但只add一个文件到暂存区,然后直接commit

7、git status:查看仓库状态

8、git diff XX:查看XX文件相对于暂存区修改了哪些内容

9、git log:查看当前分支的所有版本

Acwing linux 第五讲git,git

从原先的空节点Empty走到当前节点的路径(从下往上走)

前七个字母就是版本号id

git log --pretty=oneline可以显示成一行

10、git reflog:查看HEAD指针的移动历史(包括被回滚的版本)(也是从下往上看)

在代码库被回滚后就用reflog来查看指针的移动历史,可以看到每一个版本的编号;然后用git reset --hard 版本号来回滚到任意节点

11、git reset --hard HEAD^ 或 git reset --hard HEAD~:将代码库回滚到上一个版本

git reset --hard HEAD^^:往上回滚两次,以此类推

git reset --hard HEAD~100:往上回滚100个版本

git reset --hard 版本号:回滚到某一特定版本

12、(git checkout — XX或)git restore XX:将XX文件尚未加入暂存区的修改全部撤销;并不是回滚到上一个历史版本,而是将工作区的内容回滚到暂存区中的版本,而如果暂存区没有任何内容,就表示头节点指向的这个版本

git restore --staged <file> 如果连暂存区中的都不想用了(staged就是暂存区),可以将文件从暂存区中删出来

因此,我们先 git restore --staged <file> 然后再git restore这个file,直接可以将这个file回滚到上一个版本

Acwing linux 第五讲git,git

以上是关于 本地 的内容(将这些版本都存在了本地的 .git文件夹中);为了减少风险,将它们存到云端,以下是关于 云端origin 的内容

功能:“历史”中可以查看各版本的文件夹;点击“master”可以切换分支;克隆

13、git remote add origin git@git.acwing.com:xxx/XXX.git:将本地仓库关联到远程仓库(注意看这个@前面的就相当于前面ssh中的username,后面的就相当于ssh中的服务器ip地址或者域名)

14、git push -u (第一次需要-u以后不需要):将当前分支推送到远程仓库

Acwing linux 第五讲git,git

git push origin branch_name:将本地的某个分支推送到远程仓库

15、git clone git@git.acwing.com:xxx/XXX.git:将远程仓库XXX下载到当前目录下

以下是关于 分支 的内容

暂存区 与 分支没有任何关系,它与分支是独立的,也就是说不管是master分支还是dev分支都共用一个暂存区;commit时它是看你当前在哪个分支,然后加到哪个分支后面;切换分支不会有多个暂存区

16、git checkout -b branch_name:创建并切换到branch_name这个分支

17、git branch:查看所有分支和当前所处分支

18、git checkout branch_name:切换到branch_name这个分支

19、git merge branch_name:将分支branch_name合并到当前分支上

20、git branch -d branch_name:删除本地仓库的branch_name分支(比如用merge将dev分支合并到master上之后,就可以把dev分支删除了)

21、git branch branch_name:创建新分支

22、git push --set-upstream origin branch_name:设置本地的branch_name分支对应远程仓库的branch_name分支

23、git push -d origin branch_name:删除远程仓库的branch_name分支

24、git pull:将远程仓库的当前分支与本地仓库的当前分支合并(先创建新同名对应分支,然后25,对应,再然后是pull合并,就和云端完全一样了)

git pull origin branch_name:将远程仓库的branch_name分支与本地仓库的当前分支合并(然后本地就比云端多一个分支了)

25、git branch --set-upstream-to=origin/branch_name1 branch_name2:将远程的branch_name1分支与本地的branch_name2分支对应(因此,要先在本地创建一个对应的分支)

26、git checkout -t origin/branch_name 将远程的branch_name分支拉取到本地

27、git stash:将工作区和暂存区中尚未提交的修改存入栈中

28、git stash apply:将栈顶存储的修改恢复到当前分支,但不删除栈顶元素

29、git stash drop:删除栈顶存储的修改

30、git stash pop:将栈顶存储的修改恢复到当前分支,同时删除栈顶元素

31、git stash list:查看栈中所有元素

Acwing linux 第五讲git,git

git其他

注意github上默认主分支是main,而终端一般默认是master

git fetch是将远程仓库内容下载到 本地仓库,工作区不会有变化,git diff origin/main远程仓库名/分支名,就可以看到区别了

touch .gitignore然后在.gitignore中加上要忽略的文件(名字+后缀),比如sex.jpg,然后再git status就看不到图片未追踪提示了(注意不要随便用这个,因为如果一个文件加入到gitignore中了,在某一个分支中将它删除并且commit了,切换回另外一个分支它也不见了)

当非常确定删除一个分支时,d大写即可 git branch -D bad_boy

用 git remote -v 查看 本地仓库和哪些远程仓库有联系(因为刚从github远程仓库复制下来的,就会显示那个github远程仓库的地址)其中,origin表示远程仓库的名字

当要更新到远程仓库使用git push时,显示输入github的用户名密码然后显示出错了,因为2021年已经不支持直接通过账号密码的形式来push代码了,需要我们生成个人访问token

今天就讲到这里,下次争取一次给大家放完,然后开始蓝桥杯备赛之旅!!!!!!!!!!文章来源地址https://www.toymoban.com/news/detail-769256.html

1、git config --global user.name xxx:设置全局用户名,信息记录在~/.gitconfig文件中
2、git config --global user.email xxx@xxx.com:设置全局邮箱地址,信息记录在~/.gitconfig文件中
3、git init:将当前目录配置成git仓库,信息记录在隐藏的.git文件夹中
4、git add XX:将XX文件添加到暂存区

git add .:将所有待加入暂存区的文件加入暂存区
5、git rm --cached XX:将文件从仓库索引目录中删掉

6、git commit -m "给自己看的备注信息":将暂存区的内容提交到当前分支(也就是说在上一个节点上面再产生一个新的节点,同时HEAD指针移动到这个新的节点)(注意这个备注信息是很重要的)
7、git status:查看仓库状态
8、git diff XX:查看XX文件相对于暂存区修改了哪些内容
9、git log:查看当前分支的所有版本
git log --pretty=oneline可以显示成一行

10、git reflog:查看HEAD指针的移动历史(包括被回滚的版本)(也是从下往上看)

在代码库被回滚后就用reflog来查看指针的移动历史,可以看到每一个版本的编号;然后用git reset --hard 版本号来回滚到任意节点

11、git reset --hard HEAD^ 或 git reset --hard HEAD~:将代码库回滚到上一个版本

git reset --hard HEAD^^:往上回滚两次,以此类推
git reset --hard HEAD~100:往上回滚100个版本
git reset --hard 版本号:回滚到某一特定版本
12、(git checkout — XX或)git restore XX:将XX文件尚未加入暂存区的修改全部撤销;并不是回滚到上一个历史版本,而是将工作区的内容回滚到暂存区中的版本,而如果暂存区没有任何内容,就表示头节点指向的这个版本

git restore --staged <file> 如果连暂存区中的都不想用了(staged就是暂存区),可以将文件从暂存区中删出来
因此,我们先 git restore --staged <file> 然后再git restore这个file,直接可以将这个file回滚到上一个版本
13、git remote add origin git@git.acwing.com:xxx/XXX.git:将本地仓库关联到远程仓库(注意看这个@前面的就相当于前面ssh中的username,后面的就相当于ssh中的服务器ip地址或者域名)
14、git push -u (第一次需要-u以后不需要):将当前分支推送到远程仓库
git push origin branch_name:将本地的某个分支推送到远程仓库
15、git clone git@git.acwing.com:xxx/XXX.git:将远程仓库XXX下载到当前目录下

以下是关于 分支 的内容

暂存区 与 分支没有任何关系,它与分支是独立的,也就是说不管是master分支还是dev分支都共用一个暂存区;commit时它是看你当前在哪个分支,然后加到哪个分支后面;切换分支不会有多个暂存区

16、git checkout -b branch_name:创建并切换到branch_name这个分支
17、git branch:查看所有分支和当前所处分支
18、git checkout branch_name:切换到branch_name这个分支
19、git merge branch_name:将分支branch_name合并到当前分支上
20、git branch -d branch_name:删除本地仓库的branch_name分支(比如用merge将dev分支合并到master上之后,就可以把dev分支删除了)
21、git branch branch_name:创建新分支
22、git push --set-upstream origin branch_name:设置本地的branch_name分支对应远程仓库的branch_name分支
23、git push -d origin branch_name:删除远程仓库的branch_name分支
24、git pull:将远程仓库的当前分支与本地仓库的当前分支合并(先创建新同名对应分支,然后25,对应,再然后是pull合并,就和云端完全一样了)

git pull origin branch_name:将远程仓库的branch_name分支与本地仓库的当前分支合并(然后本地就比云端多一个分支了)
25、git branch --set-upstream-to=origin/branch_name1 branch_name2:将远程的branch_name1分支与本地的branch_name2分支对应(因此,要先在本地创建一个对应的分支)
26、git checkout -t origin/branch_name 将远程的branch_name分支拉取到本地
27、git stash:将工作区和暂存区中尚未提交的修改存入栈中
28、git stash apply:将栈顶存储的修改恢复到当前分支,但不删除栈顶元素
29、git stash drop:删除栈顶存储的修改
30、git stash pop:将栈顶存储的修改恢复到当前分支,同时删除栈顶元素
31、git stash list:查看栈中所有元素

到了这里,关于Acwing linux 第五讲git的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 60题学会动态规划系列:动态规划算法第五讲

    子数组系列题目 文章目录 1.最大子数组和 2.环形子数组的最大和 3.乘积最大数组 4.乘积为正数的最长子数组长度 5.等差数列划分 6.最长湍流子数组 7.单词拆分 8.环绕字符串中唯一的子字符串 力扣链接:力扣 给你一个整数数组  nums  ,请你找出一个具有最大和的连续子数组(

    2024年02月15日
    浏览(31)
  • SpringMVC第五讲:SpringMVC实现AJAX及JSON格式转换

    10、1Spring MVC实现AJAX AJAX异步提交是页面与程序交互的重要手段之一,在SpringMVC中,也支持页面向Controller控制器发送异步请求。页面发送异步请求时,常使用JSON格式数据进行数据传输。但是当页面需要向Controller控制器发送异步请求时,需要注意以下几个问题: SpringMVC的静态

    2024年02月15日
    浏览(28)
  • ElasticSearch第五讲 ES nested嵌套文档与父子文档处理

    在ES中,处理实体之间的关系并不像关系型存储那样明显。在关系数据库中的黄金准则 - 数据规范化,在ES中并不适用。在处理关联关系,嵌套对象和父子关联关系中,我们会讨论几种可行方案的优点和缺点。 紧接着在为可扩展性而设计中,我们会讨论ES提供的一些用来快速灵

    2024年02月02日
    浏览(37)
  • 【Gazebo入门教程】第五讲 控制器插件的编写与配置(上)

    前言 : 在先前的博客中,我们不仅完成了对机器人模型的建立和仿真,并且创建了机器人的工作空间,即仿真环境的设置,那么想要通过控制机器人传感器来完成对于机器人的控制就需要进一步研究,学会如何使用 控制插件 ,通过编写代码在Gazebo中加载C++库完成对于机器人

    2023年04月08日
    浏览(50)
  • [XJTU计算机网络安全与管理]——第五讲公钥加密算法

    素数 素数是除了1与自身无其他因子的数;它们无法被写为数字的乘积;1一般不再考虑之内 例如:2,3,5,7是素数,4,6,8,9不是 素数是数论研究的中心 200以内的素数有:2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173

    2023年04月27日
    浏览(37)
  • 【C++项目】高并发内存池第五讲内存回收释放过程介绍

    项目源代码:高并发内存池 当闲置的内存超过一个批量单位大小的时候就开始回收,首先要计算出要回收到哪个桶的的内存,然后逐级往上回收。 CentralCache回收回来还需要做前后页的合并,合成一个大的内存块,然后继续交给PageCache处理 PageCache需要将一页一一页的小块内存

    2024年02月08日
    浏览(38)
  • 《互联网的世界》第五讲-信任和安全(第一趴:物理世界的非对称加密装置)

    信任和安全的话题过于庞大,涉及很多数学知识,直接涉及 “正事” 反而不利于理解问题的本质,因此需要先讲一个前置作为 part 1。 part 1 主要描述物理世界的信任和安全,千万不要觉得数字世界是脱离物理世界的另一天堂,它只是效率高了,让物理世界被认为不可能的事

    2024年03月10日
    浏览(32)
  • 【数学建模】《实战数学建模:例题与讲解》第五讲-微分方程建模(含Matlab代码)

    如果这篇文章对你有帮助,欢迎点赞与收藏~ 微分方程建模是数学建模中一种极其重要的方法,它在解决众多实际问题时发挥着关键作用。这些实际问题的数学表述通常会导致求解特定的微分方程。将各种实际问题转换为微分方程的定解问题主要包括以下几个步骤: 确定研究

    2024年03月18日
    浏览(57)
  • Git第十五讲 Git子模块的使用

    在 Git 中,子模块是一种将一个 Git 仓库作为另一个 Git 仓库的子目录进行管理的方法。使用子模块可以将一个仓库嵌套到另一个仓库中,这对于管理依赖关系和共享代码非常有用。 子模块是一个独立的 Git 仓库,它可以被嵌套在另一个 Git 仓库中。这种嵌套关系允许你在一个

    2024年02月08日
    浏览(28)
  • 【AcWing算法基础课】第五章 动态规划(未完待续)

    本专栏文章为本人AcWing算法基础课的学习笔记,课程地址在这。如有侵权,立即删除。 dp问题的优化 :在基本形式dp上作等价变形。 dp问题的解题方法 : 1)状态表示 集合 属性:最大值/最小值/数量。 2)状态计算 集合划分(不重不漏) 题目链接: 2. 01背包问题 - AcWing题库

    2024年02月12日
    浏览(35)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包